什么 - 参数在ksh中做什么?

时间:2013-08-29 10:57:27

标签: shell ksh

嗨,这是一段代码

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

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

2 个答案:

答案 0 :(得分:1)

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

)重写它
if test -a $OUT; then
    rotate $OUT
fi

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

答案 1 :(得分:1)

-a已经过时且令人困惑,因为它与传统的“和”运算符发生冲突(现在通过将test语句与&&组合而废弃)。

如果文件存在,则应使用

-e来测试。