Shell脚本执行时文件存在仍返回file not found错误是什么原因
问题根因
你脚本中is_file_exist函数的文件存在性判断语句存在语法错误,给变量前后额外添加了多余空格,导致判断的目标文件名和实际传入的文件名不一致。
具体错误点
原判断代码如下:
[[ -f " $file " ]] && return 0 || return 1
上述代码中,双引号包裹的内容里,$file的前后各多写了一个空格。假设你执行脚本时传入的参数是test.txt,实际代码判断的是文件名前后带空格的test.txt,和你本地真实存在的test.txt不是同一个文件,因此会一直返回不存在的结果。
修复方案
将上述行中的多余空格删除,修改为:
[[ -f "$file" ]] && return 0 || return 1
修改后即可正常判断文件是否存在。
内容的提问来源于stack exchange,提问作者vatsal mangukiya
相关产品推荐
相关产品推荐

