usando buscar en Bash Script y verificando si el archivo está presente

usando buscar en Bash Script y verificando si el archivo está presente
 var= "$(find . -name 'gen*.bt2')" 


 if [ "$var" == "" ]
    then
         echo bad
    else
         echo great  
 fi

me salen errores

./script.sh: línea 4:./gen.4.bt2 ./gen.rev.1.bt2 ./gen.rev.2.bt2 ./gen.1.bt2 ./gen.3.bt2 ./gen.2.bt2:El fichero o directorio no existe excelente

Sin embargo, cuando ejecuto el mismo código en la terminal, los archivos se enumeran perfectamente, sin ningún error.

¿Alguien puede corregirme, en qué me estoy equivocando?

Necesito verificar si ciertos archivos están presentes o no; si están presentes, proceda.

Respuesta1

El problema es el espacio en tu tarea. El shell es sensible a los espacios en blanco. Su comando es el equivalente a:

var="" "./gen.4.bt2 ./gen.rev.1.bt2 ./gen.rev.2.bt2 ./gen.1.bt2 ./gen.3.bt2 ./gen.2.bt2" # output of find

Necesitas eliminar el espacio:

var="$(find . -name 'gen*.bt2')" 

información relacionada