var= "$(find . -name 'gen*.bt2')"
if [ "$var" == "" ]
then
echo bad
else
echo great
fi
我收到错误
./script.sh:第 4 行:./gen.4.bt2 ./gen.rev.1.bt2 ./gen.rev.2.bt2 ./gen.1.bt2 ./gen.3.bt2 ./gen.2.bt2:没有这样的文件或目录 伟大的
但是,当我在终端中运行相同的代码时,文件会完美列出,没有任何错误。
有人可以纠正我吗,我哪里错了?
我需要检查某些文件是否存在,如果存在则继续。
答案1
问题是你的作业中的空间。 shell 对空格敏感。您的命令相当于:
var="" "./gen.4.bt2 ./gen.rev.1.bt2 ./gen.rev.2.bt2 ./gen.1.bt2 ./gen.3.bt2 ./gen.2.bt2" # output of find
您需要删除空格:
var="$(find . -name 'gen*.bt2')"