6

ここのチュートリアルに従っています: http://bash.cyberciti.biz/guide/If..else..fi#Number_Testing_Script

私のスクリプトは次のようになります。

lines=`wc -l $var/customize/script.php`
if test $lines -le 10
then
    echo "script has less than 10 lines"
else
    echo "script has more than 10 lines"
fi

しかし、私の出力は次のようになります:

./boot.sh: line 33: test: too many arguments
script has more than 10 lines

引数が多すぎると表示されるのはなぜですか? 私のスクリプトがチュートリアルのスクリプトとどのように違うのかわかりません。

4

3 に答える 3

1

また、使用する必要があります

if [[ $lines -gt 10 ]]; then
    something
else
  something
fi

test conditionは本当に時代遅れであり、そのすぐ後継者でもあり[ condition ]ます。これは主に、これらの形式に細心の注意を払う必要があるためです。たとえば、またはに$var渡すものはすべて引用符で囲む必要があり、他にも複雑な詳細があります。(テストはあらゆる点で他のコマンドと同じように扱われます)。詳細については、この記事を参照してください。test[ ]

于 2012-06-12T09:16:28.697 に答える