2013-04-13 14 views
50

ファイルtest.shの./test.sh:行13:[:missing ']' 大括弧や-aなどのその他のオプションを使用して試してみましたファイルp1のサイズですが、エラーは常に存在し、else文は指定された入力に関係なく常に実行されます。 13行目にあるが、それは役に立たなかった。Bashスクリプトがありません ']'

test.sh

#!/bin/bash 
echo "Enter app name" 
read y 
$y & 
top -b -n 1 > topLog.log 
#-w checks for the whole word not and sub string from that word 
grep -w "$y" topLog.log > p1 
#-s option checks if the file p1 is present or not 
if [ -s "p1"]; #line 13 
then 
    echo "Successful " 
else 
    echo "Unsuccessful" 
fi 
rm p1 

私は私をお許しください任意の愚かな間違いがある場合scripting.Soをbashに新しいです。

答えて

130

変更

if [ -s "p1"]; #line 13 

の前にスペースを追加します。

+2

+ 1あなたは本当に素早いです! – Kent

+0

一度私はあなたを打つ:-) –

+0

私はちょうどOPのIDが迅速であることがわかった! : – Kent

5

if [ -s "p1" ]; #line 13 

ノート空間に近いブラケット

7

あなたは"p1"の後にスペースが不足している:

if [ -s "p1" ]; 
7

[ ... && ... ]のような単一の括弧の中&&演算子を使用しようとしているときに、私はこのエラーを得ました。 [[ ... && ... ]]に切り替える必要がありました。

+0

ありがとう、これは私の問題であり、これは解決しました –

+1

'[...] && [...]'も働いていたでしょう –

+0

ええ、[b]はバッシュですので、他の場所では動作しません。 – BTRUE

関連する問題