Použijte $#
speciální proměnná. Jeho hodnota je počet argumentů. Pokud tedy máte skript, který obsahuje pouze:
echo $#
a spusťte jej takto:
thatscript foo bar baz quux
Vytiskne 4.
Ve vašem případě možná budete chtít udělat něco jako:
if [ $# -lt 2 ]; then
# TODO: print usage
exit 1
fi
Pokud vycházím z požadavku z otázky, že argumenty by měly obsahovat „alespoň 2 věci“, myslím, že by mohlo být přesnější zkontrolovat:
if (( $# < 2 )); then
# TODO: print usage
exit 1
fi
Použití aritmetického rozšíření ((
))
zabrání tomu, aby se srazilo s exit 1
pro jakoukoli hodnotu, která se nerovná 2.
Pokud používáte if [ $# -ne 2 ];
spustí podmínku pro libovolný počet argumentů jiný než 2.
Edit:Zdá se, že přijatá odpověď byla aktualizována, aby zahrnovala ekvivalentní (a přenosnější?) příklad tohoto.
Odeberte konkrétní znak pomocí awk nebo sed
Nejnižší latence oznamovací metoda mezi procesy pod Linuxem