【发布时间】:2015-07-16 20:11:33
【问题描述】:
我有一个 bash 脚本:
echo " enter file name "
read $file
if [ -f "$file" ] && [ -s "$file" ]
then
echo " file does not exist, or is empty "
else
echo " file exists and is not empty "
fi
无论我输入什么$file,它都会给我错误的值。我什至可以输入一个根本不存在的文件;它仍然会给我错误的价值。这是为什么呢?
【问题讨论】:
-
&&后面需要一个空格 -
这是我的编辑错误,我已修复。但是这个解决方案不起作用。
-
而
-f测试文件是否存在,但您在“不存在”部分得到了它 -
你认为
[ -f "$file" ] && [ -s "$file" ]会做什么? -
如果您在运行此程序时使用
set -x或bash -x yourscript,您会看到它运行[ -f '' ]和[ -s '' ],这会给您一个线索,然后再在这里询问file未正确设置(由于read $file中的$)。
标签: bash