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