ランダムな引数を受け入れるBashスクリプトをテストしていますが、次のようなものが表示されることを確認しました。
./Var: line 19: [three: command not found
以下は、最小限の作業例です。
#!/bin/bash
$1 $2 $3
echo "The first argument does $1"
if [$1 >= 2]; then
echo "$1 has 2 words"
else
echo "$1 has unknown amount of words"
fi
#^First
echo "The second argument does $2"
if [$2 >= 2]; then
echo "$2 has 2 words"
else
echo "$2 has unknown amount of words"
fi
#^Second
echo "The third argument does $3"
if [$3 >= 2]; then
echo "$3 has 2 words"
fi
#^Third
しかし、スクリプトは引き続き実行されます。 「コマンドが見つかりません」というメッセージなしでスクリプトを実行する方法はありますか?それとも、これは私のコードの問題によって引き起こされますか?
答え1
使用するコマンドは[
(またはtest
)ではなく、[whatever
(たとえば)でなければなりません。
[ "$3" -ge 2 ]
代わりにif isを[$3 >= 2]
生成します。また:[three: command not found
$3
three
- 変数を参照してください。
[
理解していない>=
、理解し、-ge
その他のオプション。>=
とにかくリダイレクトなので、コマンドがあるかどうか[
に関係なくコマンドに到達しません[three
。これでというファイルができました=
。
Bashに組み込まれています[
。望むよりhelp [
、help test
。