2016-11-04 7 views
0
#!/bin/bash 
a=0 
while ["$a" -lt 10] 
do 
a=`expr "$a" + 1` 
echo $a 
done 

ループ誤差ながら:シェルスクリプトこれは誤りである

a.sh: 3: a.sh: [0: not found 
+0

http://www.shellcheck.net/このようなタイプミスには非常に便利です – Sundeep

+2

['if'の2つの文字列変数を比較するにはどうすればよいですか? Bashのステートメント?](http://stackoverflow.com/questions/4277665/how-do-i-compare-two-string-variables-in-an-if-statement-in-bash)、[なぜそうする必要がありますか? Bashスクリプトで '\ ['の前と '\]'の前にスペースを入れますか?](http://stackoverflow.com/questions/9581064/why-should-there-be-a-space-after-and-before -in-a-bash-script) –

答えて

0

あなたの括弧の前後にスペースを維持する必要があります。

while [ "$a" -lt 10 ] 

bashは文字列をinterpretesからです。単語を区切るためにスペースを使います。あなたが書くとき["$a"; [0($ aが0に置き換えられた後)

+0

申し訳ありません、重複した回答を削除しました! – aliasav

+0

ありがとう、素晴らしい! –

関連する問題