내가 작성한 대부분의 코드는 PHP입니다. 최근에 쉘 스크립팅을 배우기 시작했습니다. 내가 접한 대부분의 리소스와 자습서는 Bash에만 해당됩니다. 일부는 bashism에 대해 경고하고 일부는 그렇지 않습니다. 나는 여기와 스택 오버플로를 많이 읽었습니다.
답변이 bashisms를 사용할 때마다 누군가는 필연적으로 다음과 같이 말합니다.
<bash bashism here>를 사용해서는 안됩니다. 휴대용이 아닙니다.
질문에 태그가 지정된 경우에도 발생합니다 bash. 나에게 그것은 PHP 프로그래머에게 PHP 4에서 사용할 수 없기 때문에 PHP 5의 새로운 코드를 사용해서는 안된다고 말하는 것과 같습니다. Windows에서.
PHP로 작성할 때 최소 요구 사항을 선택하고 앞으로 호환되는 코드를 작성합니다. 이전 버전과 호환 되도록 걱정하지 않습니다 .
내가 사용하는 경우 #!/bin/bash
오두막으로, 내가 왜 bashisms를 사용하지 말아야? 일부 사람들은 단지 그것을 위해 bashisms (pun 의도) 을 강타하고 싶다는 인상을 받기 시작 했습니다.
사람들은 종종 bash가 많은 시스템에서 기본 쉘이기 때문에 사용 bash
하고 shell
상호 교환 가능합니다. 따라서 코드에 bashism을 사용한다고 경고하는 주석을 추가하는 것을 이해할 수는 있지만 bashism 을 사용 하는 것이 잘못되었다는 의미는 이해하지 못합니다 .
분명히 개인적으로 사용하기 위해 스크립트를 작성하는 경우 원하는 언어로 작성할 수 있습니다. 그러나 내가 작성한 코드 중 일부는 다른 사람들에게 유용 할 수 있다고 생각하고 싶습니다.
게시하기 전에 내 질문에 대한 답변을 검색했습니다. 이식성 을 테스트 하는 방법 에 대한 많은 정보를 찾았 지만 중요한 시점 에 대한 정보를 찾을 수 없었 습니다 .
그렇다면 이식 가능한 스크립트를 작성하는 것이 언제 중요합니까?
예를 들어
- 어떤 유형의 스크립트가 가능한 이식성이어야합니까?
- Bash가 설치되지 않은 시스템은 얼마나 흔합니까?
- 시스템에 Bash가 설치되어 있다면 GNU 버전의 find 및 기타 유틸리티도 포함됩니까?
bash
태그 만있는 경우 누군가 "부 시즘이며 이식성이 없다"고 말합니다. 태그가 지정된 질문에 대답 할 때 C
이식 가능한지 여부는 상관하지 Java
않습니다.
bash
GNU 특정 확장 프로그램이 일부 유틸리티에 사용되고 있음을 지적하는 것처럼 (특정 질문이지만 Linux로 태그가 지정되어 있음), 특정 기능이며 이식성이 아니라는 점을 항상 지적하는 것이 좋습니다 . 나는 "이것이 bashism이고 당신은 그것을 사용해서는 안된다"고 말하는 것을 본 적이 없다.