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')"