Gunakan $#
variabel khusus. Nilainya adalah jumlah argumen. Jadi jika Anda memiliki skrip yang hanya berisi:
echo $#
dan jalankan seperti ini:
thatscript foo bar baz quux
Ini akan mencetak 4.
Dalam kasus Anda, Anda mungkin ingin melakukan sesuatu seperti:
if [ $# -lt 2 ]; then
# TODO: print usage
exit 1
fi
Mengikuti persyaratan dari pertanyaan bahwa argumen harus berisi "setidaknya 2 hal", saya pikir mungkin lebih akurat untuk memeriksa:
if (( $# < 2 )); then
# TODO: print usage
exit 1
fi
Menggunakan ekspansi aritmatika ((
))
akan mencegah ini mengenai exit 1
untuk nilai apa pun yang tidak sama dengan 2.
Jika Anda menggunakan if [ $# -ne 2 ];
itu akan memicu kondisional untuk sejumlah argumen selain 2.
Sunting:Sepertinya jawaban yang diterima telah diperbarui untuk menyertakan contoh yang setara (dan lebih portabel?) dari ini.
Hapus karakter tertentu menggunakan awk atau sed
Metode pemberitahuan latensi terendah antara proses di Linux