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