我试图确定文件或目录是否不存在。我尝试了下面的命令来查看文件是否存在,并且它们工作正常:

if [ -a 'settings.py' ]; then echo 'exists'; fi
exists #output
if [ -a 'foo' ]; then echo 'exists'; fi #outputs nothing

但是当我尝试这个:
if [ ! -a 'settings.py' ]; then echo 'does not exist'; fi
does not exist #shouldn't be output since the file does exist
if [ ! -a 'foo' ]; then echo 'does not exist'; fi
does not exist

“不存在”是什么输出。

最佳答案

尝试使用-e代替-a
Linux Documentation Project上的这一页说:
-a在效果上与-e相同。但它已被弃用,而且不鼓励使用。

关于bash - bash的奇怪性不是运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3809746/

10-12 19:33