использование find в Bash Script и проверка наличия файла

использование find в Bash Script и проверка наличия файла
 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')" 

Связанный контент