![Bash 스크립트가 실행되지 않았습니다.](https://linux55.com/image/175213/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%20%EC%8B%A4%ED%96%89%EB%90%98%EC%A7%80%20%EC%95%8A%EC%95%98%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
이 작은 bash 스크립트가 있습니다.
#!/bin/bash
PATH1="/home/user100/files"
CMD1=$(find . -type f -iname "*.sh" -exec rm -fr {} +;)
cd $PATH1
$CMD1
명령을 하나씩 실행하면 모두 성공적으로 실행되고, 스크립트를 실행하면 아무 작업도 수행되지 않습니다.
어떤 도움이나 아이디어라도 대단히 감사하겠습니다.
답변1
명령을 변수에 문자열로 저장하려면 $()를 사용하면 안 됩니다.
CMD1="find . -type f -iname '*.sh' -exec rm -fr {} +;"
그런 다음 나중에 명령을 사용하여 해당 변수를 호출합니다 eval
. 따라서 스크립트는 다음과 같아야 합니다.
#!/bin/bash
PATH1="/home/user100/files"
CMD1="find . -type f -iname '*.sh' -exec rm -fr {} +;"
cd $PATH1
eval $CMD1;
그런 다음 스크립트에 실행 권한을 부여하는 것을 잊지 마십시오
chmod +x script.sh
그런 다음 스크립트를 실행하십시오.
./script.sh