Bash 스크립트에서 찾기를 사용하고 파일이 존재하는지 확인하십시오.

Bash 스크립트에서 찾기를 사용하고 파일이 존재하는지 확인하십시오.
 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')" 

관련 정보