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