ダメ
function hoge
if count $argv -ne 1
echo "error argv" $argv
return
end
end
いい
function hoge
set length (count $argv)
if test $length -ne 1
echo "error! argv" $argv
return
end
end
countの結果は標準出力に出力されるので?
逆に終了ステータスで判定したい場合はif count
の最後に> /dev/null
とリダイレクトして出力を捨てないといけない。
if count
とすると終了ステータスのチェックになるのでだめ。
久しぶりに書くとうっかりこうなる。
bashの$#
はないのかな?
引数を処理する | UNIX & Linux コマンド・シェルスクリプト リファレンス
と思ってたんですが、ダメな方をよく見ると、引数なしの実行で標準出力に吐かれるintが2。引数を足していくとインクリメントしていく。
set length (count $argv)
の変数の値と、count $argv
の出力が一致しないので、何か見落としている気がする。