3

if / elseステートメントを使用すると、単純なスクリプトでエラーが発生します。
コード:

#!/bin/sh
count=100
if [$count > 3]; then
echo "Test IF"
fi

エラー:/ bin / ash:6行目:[100:見つかりません

4

5 に答える 5

8
#!/bin/sh 

count=100;
if [ "$count" -gt 3 ]; then
  echo "Test IF";
fi

構文を修正してください。スペースはとの前後に使用する必要が[あり]、パラメーター展開は引用符で囲む必要があり、。-gt内の数値比較に適しています[ ]>inshはリダイレクト演算子として使用されます。算術比較で使用する場合は、bashのみの構文を使用する必要があります

$(( $count > 3 ))
于 2012-09-28T13:35:13.937 に答える
1
#!/bin/sh 

if [ $var -eq 12 ]; then 
    echo "This is a numeric comparison if example"
fi

if [ "$var" = "12" ]; then
    echo "This is a string if comparison example"
fi

if [[ "$var" = *12* ]]; then
    echo "This is a string regular expression if comparison example"
fi
于 2012-10-03T12:44:28.353 に答える
0

これでもいけます!

#!/bin/sh
count=100
if [ $count -gt 3 ];
then
    echo "Test IF"
fi
于 2014-01-07T09:18:14.637 に答える
0

シェルの if ステートメントは、コマンド [. [ はコマンドなので ('test' も使用できます)、テストする条件を記述する前にスペースが必要です。条件のリストを表示するには、次のように入力します。 man test

man ページに次のように表示されます。

s1 > s2文字列 s1 が文字列 s2 の後にあるかどうかをテストします

n1 gt n2整数 n1 が n2 より大きいかどうかをテストします

あなたの場合、文字列 100 は文字列 3 の後に来るので > を使用するとうまくいきますが、書く方が論理的です

if [ $count -gt 3 ]; then
   echo "test if"
fi
于 2012-09-28T13:42:26.050 に答える