"bash" 명령을 사용하거나 사용하지 않고 쉘 스크립트 실행 [닫기]

"bash" 명령을 사용하거나 사용하지 않고 쉘 스크립트 실행 [닫기]

앞에 "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.

관련 정보