bash:检查文件是否可读时预期的条件二元运算符?

时间:2018-01-18 08:15:55

标签: linux bash

我有这个代码在一台Macbook上完美运行但在bash中不适用于另一台Linux机器。在Linux机器上运行时,在尝试检查变量中的文件是否可读或文件时,我收到错误"conditional binary operator expected" "syntax error near $ {testfile}'“。

for file in "${@:2}"
do
 if [[ ! -rf ${file} ]]

当我制作[ ! -rf "$file" ]时,我得到:[: -rf: unary operator expected

2 个答案:

答案 0 :(得分:1)

[[ ! -r "${file}" && ! -f "${file}" ]]

或:

[ ! -r "${file}" -a ! -f "${file}" ]

答案 1 :(得分:1)

只需使用 -r 测试就可以了

if [[ ! -r ${file} ]]