
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
問題は課題の空間です。シェルは空白に敏感です。あなたのコマンドは次のとおりです。
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')"