Bashスクリプトがありません ']' [クローズ]


82

エラー./test.sh:13行目:[:ファイルtest.shに `] 'がありません。角かっこや-aなどの他のオプションを使用するか、ファイルp1のサイズを確認しようとしましたが、エラーは常にそこにあり、elseステートメントは、指定された入力に関係なく常に実行されます。;を削除してみました。13行目ですが、役に立ちませんでした。

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

私はbashスクリプトを初めて使用するので、ばかげた間違いがあれば失礼します。

回答:



40

&&ような単一の角かっこ内で演算子を使用しようとすると、このエラーが発生しました[ ... && ... ]。に切り替える必要がありました[[ ... && ... ]]


私もifで&&を使用していましたが、問題は解決しました。
PraveenPatel20年

==演算子を使用していましたが、同じ問題が発生しました。二重角括弧に切り替えると役に立ちました。
VishnuNair20年



0

Windowsでスクリプトを作成し、それをLinuxマシンで実行したい場合で、コードに間違いがないことが確実な場合は、Linuxマシンにdos2unixをインストールしてを実行しdos2unix yourscript.shます。次に、スクリプトを実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.