0

我正在整理一个简单的备份脚本,它将压缩文件夹的内容,然后将该文件移动到备份服务器。该脚本在移动之前确保 tar 文件存在并且不是零字节。

问题是脚本在 IF 行之一上死了

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

&& 运算符分隔命令,因此您的[和您]的不是同一命令的一部分,这是必需的。要么使用两组括号,它们之间有一个 &&,要么使用-a运算符。如今,大多数人更喜欢第一种选择。

于 2012-07-02T15:15:51.093 回答