Bash スクリプトで find を使用してファイルが存在するかどうかを確認する

Bash スクリプトで find を使用してファイルが存在するかどうかを確認する
 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')" 

関連情報