var= "$(find . -name 'gen*.bt2')"
if [ "$var" == "" ]
then
echo bad
else
echo great
fi
Eu recebo erros
./script.sh: linha 4:./gen.4.bt2 ./gen.rev.1.bt2 ./gen.rev.2.bt2 ./gen.1.bt2 ./gen.3.bt2 ./gen.2.bt2:Não existe tal arquivo ou diretório ótimo
Porém, quando executo o mesmo código no terminal, os arquivos são listados perfeitamente, sem nenhum erro.
Alguém pode me corrigir, onde estou errando?
Preciso verificar se determinados arquivos estão presentes ou não, se estiverem presentes, prossiga.
Responder1
O problema é o espaço em sua tarefa. O shell é sensível a espaços em branco. Seu comando é 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
Você precisa remover o espaço:
var="$(find . -name 'gen*.bt2')"