bash if语句预期一元运算符

时间:2014-10-17 11:29:50

标签: linux bash if-statement

我试图按照

的方式做点什么
if (!regular file || symbolic link)
    continue

到目前为止我所拥有的是

st1=$( -f "${ARRAY[$i]}" )                                                 
 if [ "$st1" -eq 0 ] 

但我得到"预期一元操作员错误"

1 个答案:

答案 0 :(得分:1)

您不需要创建中间st1变量。只需使用:

if [[ ! -f "${ARRAY[$i]}" || -h "${ARRAY[$i]}" ]]; then
    echo "${ARRAY[$i]} link exists"
fi

您对st1=$( -f "${ARRAY[$i]}" )的使用不正确,会导致语法错误:

-f: command not found

因为shell会将f视为命令名。