2012-05-01 11 views
2

私はbashでスクリプトを書いていますが(私はbashでプログラミングを始めます)、私はエラーがあります。私はすべてを試していますが、これを修復する方法はまだ分かりません。bashの構文エラー

#!/bin/bash 
cap=0 
cat|while read line 
    do 
    read a 
    if[$a -gt $cap] 
     then echo "MORE" 
fi 
done 

簡単スクリプトですが、私はbashで初心者だけど、誰かが私を助けてください;)

+2

スクリプトで達成しようとしていることを説明します。 –

+0

あなたは何を達成しようとしていますか? – theglauber

+1

最初に、$ lineには入力ファイルから読み込まれた現在の行がすでに含まれているので、2番目の読み込みを必要としません。そうでなければ、入力ファイルの行の半分を失います。 –

答えて

8

構文エラーはここにある:あなたは空白を必要とする

if[$a -gt $cap] 

、および引用符(に空白または空の値を含むコンテンツで安全なもの):

if [ "$a" -gt "$cap" ] 

することができます数学のコンテキストを使用することが希望よりも

if [[ $a -gt $cap ]] 

さらに良い:構文(というよりも[、コマンドがある)で、かつ安全であることを二重引用符は必要ありませんテストメカニズム、従来の数学演算子を使用し、変数を自動的に逆参照します。

if ((a > cap)) ; then ... 
fi 
+0

ありがとう:) thats help :) – pkruk