!["bash" 명령을 사용하거나 사용하지 않고 쉘 스크립트 실행 [닫기]](https://linux55.com/image/144764/%22bash%22%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B1%B0%EB%82%98%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EC%8B%A4%ED%96%89%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
앞에 "bash"를 추가하면 제대로 실행되는 스크립트가 있습니다.
bash ./myscript.sh /opt/config/run.config
그런데 이렇게 하지 않으면 아래 줄에서 멈추고 종료됩니다.
source "/opt/config/test.config"
명령 앞에 bash를 추가해도 문제가 없습니다.
새 상자를 설정할 때 누락된 환경 변수에 뭔가가 있습니까? 동일한 스크립트가 이전 시스템에서도 문제 없이 작동합니다.
답변1
#!/bin/bash
해결책: 스크립트 헤드에 shebang을 추가하세요.
첫 번째 줄에 원하는 쉘을 강제로 적용할 수 있습니다. #!/bin/bash
이는 현재 수행 중인 작업을 수행하는 또 다른 방법입니다.bash ./myscript ...
#!/bin/bash
...
...
source "/opt/config/test.config"
...
...
문제에 대한 가능한 설명
셸에는 source
내장 명령이 없습니다 sh
(그리고 이름이 붙은 프로그램도 없습니다 source
). 따라서 스크립트가 에 의해 실행되면 sh
명령줄에서는 실패하게 됩니다 source
.