代码是:
src=/home/Desktop/src
dest=/home/Desktop/dest
if test -s $src/$InputFile ; then
echo "File is present. :$InputFile"
else
echo "File is not present"
fi
在上面的代码中,如果我声明变量" InputFile"作为InputFile = a.txt然后它去检查src目录中的文件a.txt,如果文件存在则打印"文件存在"。如果文件不存在则打印"文件不存在"。
我没有声明变量" InputFile"在上面的代码中。它仍然转到src路径并执行if条件并打印"文件存在"。谁能告诉我" test -s"的确切行为?当filename变量为空时?
答案 0 :(得分:1)
你跑了:
test -s /home/Desktop/src/
此/home/Desktop/src/
不是空目录。
答案 1 :(得分:0)
误解源于-s
不仅适用于常规文件,而且适用于所有类型的文件。
因此,当您将InputFile
变量设为null时,它会检查从$src
扩展的目录的存在和大小,并将$?
作为0
返回为目录在文件系统上占用最小块大小(假设目录存在于第一位)。