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