Dmi*_*iev 2 bash conditional-statements
当我在表达式中不添加任何文件名时,将检查哪个文件存在并且是常规文件[ -f ] && echo 1?
$ [ -f ] && echo "1"
1
Run Code Online (Sandbox Code Playgroud)
没有文件被检查。[根据接收到的参数数量来解释其参数(忽略])。
在这种情况下,只有一个参数,-f不是一元运算符。它只是一个非空字符串。这意味着它等效于[ -n -f ],它会成功,因为一元运算符的参数-n确实不是空的。