我正在对现有的Bash脚本进行故障排除,并且在脚本中它有两个测试:
if [ ! -s <file_location> ] ; then
# copy the file to the file_location
if [ -s <file_location> ] ; then
# operate on the file
fi
fi
根据Bash Tutorial,-s
测试文件的大小是否为零。用! -s
替换-e
测试会更好吗?我可以理解第二个嵌套测试是-s
,但第一个似乎可以用-e
替换。 ! -s
vs -e
的优势是什么?我错过了什么吗?
答案 0 :(得分:2)
如果文件存在但是为空,则-e
将通过,但该文件可能没用。使用! -s
可确保文件存在且包含有用的内容。