0

フォルダの内容をtarして、そのファイルをバックアップサーバーに移動する簡単なバックアップスクリプトをまとめています。スクリプトは、移動する前に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ステートメントです。

スクリプトはで正常に検証されます

bash -n backup.sh

bashが']'の欠落を認識しているのに、構文チェックに合格しているのは何が問題なのですか?

4

1 に答える 1

5

&&演算子はコマンドを区切るため、必要に応じて、your[とyour]は同じコマンドの一部ではありません。&&を間に挟んだ2組の角かっこを使用するか、-a演算子を使用します。最近、ほとんどの人が最初のオプションを好みます。

于 2012-07-02T15:15:51.093 に答える