我有这个代码在一台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
答案 0 :(得分:1)
[[ ! -r "${file}" && ! -f "${file}" ]]
或:
[ ! -r "${file}" -a ! -f "${file}" ]
答案 1 :(得分:1)
只需使用 -r 测试就可以了
if [[ ! -r ${file} ]]