왜 bash 대신 sh를 사용하겠습니까?

왜 bash 대신 sh를 사용하겠습니까?

기존 쉘 스크립트를 수정해야 하는데 다음으로 시작합니다.

#!/bin/sh

bash도 지원하는 시스템에서 누군가 그것을 사용하는 이유는 무엇입니까? 나는 그것을 바꾸고 싶은 유혹을 느끼지만 이것에 대해 내가 모르는 이유가 없는지 확인하고 싶습니다.

내 현재 문제는 문자열 조작에 관한 것이며 ${mystring:start:length}bash에서는 사용하기가 쉽지만 sh에서는 사용할 수 없습니다.

답변1

최신 Linux 배포판이 가장 일반적인 운영 체제인 요즘에는 명확하지 않을 수 있지만 얼마 전에는 bash가 전혀 없는 다양한 시스템뿐만 아니라 해당 버전 중 하나에 있는 Linux 배포판도 하나 기억나는 것을 볼 수 있었습니다. /bin/bash가 Bourne과 같은 쉘이 아닌 일부에 연결되어 있었습니다.

그 당시에는 #!/bin/bash 스크립트를 한 시스템에서 다른 시스템으로 옮기는 것이 귀찮았기 때문에 bashism이 없는 순수한 Bourne 쉘에서 스크립트를 작성하는 것이 더 현명했습니다.

그래서 이식성이 가장 큰 이유인 것 같아요. 내 주변에 Linux 외에는 아무것도 없는 지 적어도 10년이 지났지만, 나는 스크립트에 bashism이 없을 것이라고 확신할 경우 여전히 #!/bin/sh를 사용합니다.

관련 정보