0

嗨,这是一段代码

if [ -a $OUT ]
then
rotate $OUT
fi

我是 shell 脚本的新手,没有得到 -a 在那里所做的事情,当我删除 a 时,它会抛出一个接受的错误参数。

4

2 回答 2

1

该构造[ -a $OUT ]是一种如何检查文件/目录是否$OUT存在的方法。如果是,则返回 0(真),否则返回 1(假)。您可以使用test内置/系统命令重写它,例如

if test -a $OUT; then
    rotate $OUT
fi

检查help test更多详细信息和其他一元/二元运算符。

于 2013-08-29T11:29:22.270 回答
1

-a已过时且令人困惑,因为它与传统的“and”运算符(现在通过将test语句与结合使用&&)已过时。

-e应该用于测试文件是否存在。

于 2013-08-29T11:46:16.697 回答