シェルバックアップスクリプト、 `]`がありません

シェルバックアップスクリプト、 `]`がありません

私はフォルダの内容を圧縮し、そのファイルをバックアップサーバーに移動する簡単なバックアップスクリプトを作成しています。スクリプトは、移動する前にtarファイルが存在し、ゼロバイトでないことを確認します。

問題は、スクリプトがIF行の1つで終了することです。

if [ -f /www/archives/pdf/pdf_201207021048.tar && 11294720 -gt 0 ]; then
    echo "tar file exists and is greater than 0 bytes."
else
    echo "tar file does not exist or is zero bytes"
fi

コンソールのエラーは次のとおりです。

./backup_pdf.sh: line 49: [: missing `]'

49行は上記のif文です。

スクリプトが正常に確認されました。

sh -n backup.sh

sh「]」がありませんが、構文チェックに合格しました。何が起こっていますか?

答え1

問題は&&有効な演算子ではないことです[-aまたはに変更する必要があります[ condition ] && [ other_condition ]

&&仕切り(例;:、、、||および&\nposixシェル。ドア[ -f www/archives/pdf/pdf_201207021048.tarは1つあるので終了し、&&それに似た別のドア(到達するとエラーが発生します)があり、11294720 -gt 0 ]ドアはで終了します;

関連情報