다음으로 시작하는 기존 쉘 스크립트를 수정해야 합니다.
#!/bin/sh
bash도 지원하는 시스템에서 왜 그것을 사용하겠습니까? 바꾸고 싶지만 내가 모르는 이유가 없는지 확인하고 싶습니다.
현재 문제는 문자열 조작에 관한 것입니다. 이는 ${mystring:start:length}
bash에서는 쉽지만 sh에서는 작동하지 않습니다.
답변1
요즘 최신 Linux 배포판이 가장 일반적인 운영 체제라는 것은 분명하지 않을 수 있지만 얼마 전까지만 해도 bash가 전혀 없는 다양한 시스템을 찾을 수 있을 뿐만 아니라 bash를 갖춘 Linux 배포판도 있었던 것으로 기억합니다. 해당 버전 중 하나 / bin/bash는 Bourne과 유사하지 않은 일부 쉘에 연결됩니다.
당시에는 #!/bin/bash 스크립트를 한 시스템에서 다른 시스템으로 옮기는 것이 귀찮았기 때문에 bashism 없이 순수한 Bourne 쉘에서 스크립트를 작성하는 것이 더 합리적이었습니다.
그래서 휴대성이 가장 큰 이유인 것 같아요. 적어도 10년 동안 Linux 외에는 아무것도 사용하지 않았음에도 불구하고 스크립트에 어떤 공격도 없을 것이라고 확신한다면 나는 여전히 #!/bin/sh를 사용할 것입니다.