CentOS 및 Ubuntu와 호환되는 bash 스크립트를 작성하는 방법에 대한 가이드가 있습니까?

CentOS 및 Ubuntu와 호환되는 bash 스크립트를 작성하는 방법에 대한 가이드가 있습니까?

여기서는 시나리오를 단순화하겠습니다.

일련의 bash 스크립트를 작성하고 Ubuntu에서 테스트했습니다.

내 스크립트(bash 구문)가 CentO에서도 동일하게 작동하는지 확인하고 싶습니다.

CentOS 및 Ubuntu와 호환되는 bash 스크립트를 작성하는 방법에 대한 가이드가 있습니까?

아니면 더 좋은 점은 Linux 플랫폼 전반에 걸쳐 bash 스크립트를 생성하는 방법을 설명하는 가이드가 있습니까?

업데이트 및 설명

@CM의 의견과 관련하여 bash가 어떻게 작동하는지 묻지 않습니다. bash 해석기 코드 기반이 Linux 배포판마다 다른지 묻고 싶습니다.

예를 들어 Python 3의 코드베이스 대부분은 여러 플랫폼에서 동일하며 동일하게 동작합니다. 내 경험상 Python 코드는 매우 실용적입니다. 다른 많은 인터프리터의 Node.js 코드에도 동일하게 적용됩니다.

그러나 Bash가 동일한 이식성으로부터 이점을 얻을 수 있을지 확신할 수 없습니다. 내가 틀렸을 수도 있지만 나에게는 Bash가 Linux 배포판에 통합된 것처럼 보입니다. 내가 맞나요? 대부분의 Linux 배포판은 동일한 소스 코드 저장소를 사용하여 Bash를 컴파일하고 배포합니까?

답변1

질문의 기본 전제가 변경되었습니다.(" bash한 배포판에 작성된 스크립트를 다른 배포판에서 실행할 수 있습니까?"에서), 그러나 답변의 요지는 동일하게 유지됩니다. 원래 답변은 본질적으로 이 답변의 결론에 남아 있습니다.

bash 해석기 코드 기반이 Linux 배포판마다 다른지 묻고 싶습니다.

.bashrc아니요, 처리 방법이 약간 변경되었지만 동일합니다 . 출처 bash는 GPL입니다. Linux 배포자가 수정된 버전을 배포하는 경우 bash수정된 소스 코드도 일반 버전과 검사 및 비교할 수 있어야 합니다.

내 스크립트(bash 구문)가 CentOS에서 작동하는지 확인하고 싶습니다.

이것쉘 명령 구문bash동일한 버전을 고려하면 bash.

예를 들어 Python 3의 코드베이스 대부분은 여러 플랫폼에서 동일하며 동일하게 동작합니다.

이것은 좋은 비유입니다. 동일한(또는 유사한) 버전의 Python과 설치된 라이브러리 및 유틸리티에서 작동하는 동일한 Python 코드에도 마찬가지입니다 bash.

내가 틀렸을 수도 있지만 나에게는 Bash가 Linux 배포판에 통합된 것처럼 보입니다. 내가 맞나요?

당신이 의심한다는 것을 암시하기 때문에 당신은 정말로 틀렸습니다. 기본적으로 설치될 수도 있고 그렇지 않을 수도 있다는 점을 제외하면 bash다른 도구(예: ls또는 )보다 jq더 "내부적으로 통합"되지 는 않습니다 .rsyncbashjq

CentOS 및 Ubuntu와 호환되는 bash 스크립트를 작성하는 방법에 대한 가이드가 있습니까?

아, 그게 당신의 다각적인 질문의 요지인 것 같습니다.

아마도 많은 가이드가 있을 것입니다. 그러나 이 특정 질문에 대해 실제로 의미 있는 답변을 제공하기 위해 작성 중인 스크립트 유형에 대한 세부 정보가 충분하지 않습니다. bash그러나 스크립트 자체는 스크립트가 한 배포판에서는 작동하지만 다른 배포판에서는 작동하지 않는 방식을 결정하는 주요 요소는 아닙니다.

bashbash스크립트 자체는 설치된 모든 배포판에서 완벽하게 실행됩니다 . 최상의 호환성을 위해서는 각 호스트에 동일한(또는 가까운) 버전을 설치해야 합니다 bash. 예를 들어 스크립트가 버전 4에 도입된 기능을 활용하는 경우 bashv3과 v4 사이의 스크립트에 따라 약간의 사소한 문제가 발생할 수 있습니다. 호환성 문제 bash) bash.

하지만,외부유틸리티가 존재하지 않거나 다르게 작동할 수 있습니다.

예를 들어 스크립트가 있는 경우우분투/데비안용으로 작성됨.deb패키지 관리를 처리하도록 설계되었으며 패키지 관리자를 예상하고 사용하도록 작성됩니다 . 예를 들어 패키지 관리자를 apt사용하는 Red Hat 파생 시스템에서는 이러한 도구가 존재하거나 작동할 가능성이 없습니다 . 그러나 그것이 작동하는 환경의 결과..rpmyumbash

관련 정보