일부 명령은 bash 스크립트에서 작동하지 않습니다

일부 명령은 bash 스크립트에서 작동하지 않습니다

저는 Ubuntu 14.04.02 32비트를 사용하고 있습니다.

일부 쉘 프로그래밍을 수행하는 동안 sh 명령을 통해 스크립트를 실행하면 때때로 오류가 발생하는 것을 발견했습니다.

sh 명령이 #!/bin/bash 대신 대시 쉘을 호출하기 때문입니까?

선택 명령을 사용하는 데 문제가 있습니다.

./scriptName.sh를 통해 실행하면 모든 것이 잘 진행되지만 sh scriptName.sh에서는 구문 오류가 보고됩니다. 왜 이런 일이 발생합니까?

답변1

스크립트가 bash 구문을 사용하는 경우 로 시작해야 합니다 #!/bin/bash. 스크립트를 실행하면 /path/to/script모든 것이 잘 됩니다. 인터프리터(셸)를 명시적으로 호출하는 경우 올바른 인터프리터, 즉 bashnot sh또는 무엇인가를 호출해야 합니다 perl.

많은 변형이 있습니다 sh. 배쉬도 그 중 하나입니다. 대시는 또 다른 것입니다. Dash는 bash보다 기능이 적지만 더 빠르고 메모리를 덜 사용합니다. 이것이 Ubuntu가 dash를 사용하기로 선택한 이유입니다 sh. bash의 추가 기능이 필요한 경우 어쨌든 명시적으로 호출해야 합니다.

관련 정보