这个问题看似愚蠢,但我很难过,不知道出了什么问题。 无论如何,我有一段代码来检查目录中是否存在特定文件。 代码适用于普通文件,普通文件,我的意思是......这类“abc.xlsx或xaga1.xlsx”。问题是当我传递一个带空格的文件时,它似乎失败了,我的意思是......检查失败了。 我会直接看到代码:
if [ ! -e "$file" ]
then
echo_time "ERROR: $file does not exist - aborting" >> $fileChangedLog
exit 1
fi
如果我签入了重定向输出的日志文件,我可以看到以下行:
[03/17/16 11:07:09] ERROR: "/opt/just4share/tellabs/tellabs_nodes 2.xlsx" does not exist - aborting
但如果我 ls 错误路径,我会得到以下输出:
[netcool@HJKPNLIN03 scripts]$ ls -lrt "/opt/just4share/tellabs/tellabs_nodes 2.xlsx"
-rw-rw-r--+ 1 netcool ncoadmin 17412 Mar 17 10:43 /opt/just4share/tellabs/tellabs_nodes 2.xlsx
这确认文件存在但是,我的代码无法找到它。我在这做错了什么? :|
编辑:我还尝试使用 -f 开关代替 -e 开关
答案 0 :(得分:-1)
好吧,我想到了问题,我将双引号字符附加到路径变量 $ file ,试图用双引号括起路径,删除双引号就行了。< / p>
旧代码:
file="\"$directory/$file\""
新代码:
file="$directory/$file"