![시작 스크립트: "exec"와 "bash" 명령의 차이점은 무엇입니까?](https://linux55.com/image/14887/%EC%8B%9C%EC%9E%91%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%3A%20%22exec%22%EC%99%80%20%22bash%22%20%EB%AA%85%EB%A0%B9%EC%9D%98%20%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
bw의 차이점은 무엇입니까?
exec script.sh
그리고bash script.sh
script.sh에 적절한 읽기/실행 권한이 모두 설정되어 있다고 가정합니까?
답변1
exec script.sh
바꾸다쉘은 현재 쉘의 shebang 라인에 정의되어 script.sh
있으며 해당 인터프리터를 사용하여 파일의 나머지 부분을 실행합니다. 파일 확장자에 관계없이 /bin/sh
에서 까지 무엇이든 될 수 있습니다 . /usr/bin/python
이렇게 하려면 script.sh
실행 가능해야 합니다. 이것의 한 가지 부작용은 script.sh
완료되면 쉘도 종료된다는 것입니다. 대화형 터미널인 경우 터미널도 종료됩니다.
bash script.sh
shebang 라인과 관계없이 bash
해석을 위해 새로운 쉘을 사용하십시오 . script.sh
즉, shebang 라인이 존재하면 무시됩니다. script.sh
이런 방식으로 작동하기 위해 실행 가능해야 할 필요는 없습니다.