Linux의 Bash와 Mac OS의 Bash

Linux의 Bash와 Mac OS의 Bash

아이맥을 사고 싶습니다. 나는 오랫동안 Linux에서 작업해 왔으며 많은 bash 스크립트를 작성했습니다. Mac OS에서 모든 bash 명령과 기능을 사용할 수 있는지 알고 싶습니다. Mac bash 스크립팅 경험이 있는 사람이 있나요? 귀하의 의견에 감사드립니다.

답변1

Bash 자체는 기본적으로 동일합니다. 여러 개 있을 거야작은 차이그러나 이 중 어느 것도 스크립트의 이식성에 영향을 미치지 않습니다.

가장 큰 문제는 MacOS coreutils가 FreeBSD를 기반으로 하고, 여러분이 사용하는 유틸리티가 GNU 프로젝트에 있을 가능성이 높다는 것입니다. FreeBSD coreutil은 GNU coreutil과 항상 호환되는 것은 아닙니다. GNU와 FreeBSD 버전 간에는 성능과 동작상의 차이가 있습니다.sed,grep,메모, 그리고기타 유틸리티.

GNU coreutils를 설치할 수 있지만 g-접두사가 있습니다(예 gcat: cat). 그것은이건 좋은 생각이 아니야MacOS coreutils를 GNU coreutils로 대체합니다.

답변2

중요한 점이라면 bashMac OS X Mountain Lion은 여전히 ​​버전 3.2입니다. 오늘날 대부분의 Linux 배포판은 4.x와 함께 제공되므로 버전 4 기능을 놓치게 됩니다. 현재 Homebrew는 해결 방법으로 버전 4.2.45를 제공합니다. 나는 Mavericks의 버전이 무엇인지 모르고, 아는 사람이 그렇게 말할 수 있을지도 모르겠습니다.

다른 사람들이 언급했듯이 (이미 언급한 버전을 제외하고) bash동일 하지만 Mac OS X은 (주로) BSD 사용자 영역을 사용합니다. bash많은 표준 시스템 유틸리티에는 옵션이나 동작이 약간 다릅니다. 불행히도 여기에 나열하기에는 너무 많습니다.

답변3

설치하다집에서 만든(패키지 관리자) 그런 다음 일부 기본 유틸리티의 GNU 버전을 설치합니다.

$ brew install coreutils
$ brew install gnu-sed

각 설치 후에는 수정 없이 Linux bash 스크립트를 계속 사용할 수 있도록 간단히 호출할 수 있도록 date수행 할 수 있는 단계가 표시됩니다 .gdate

축하합니다. 크로스 플랫폼 스크립팅 문제의 99%를 해결하셨습니다.

답변4

저는 "주로 Linux, 때로는 Mac" 사용자이며 다음을 발견했습니다.

bash ~/.bashrc이며 ~/.bash_aliases대부분 동일하게 작동합니다.

제가 발견한 한 가지 문제는 색상 힌트를 변경하는 명령 중 하나가 Mac에서 작동하지 않는다는 것입니다. 이 경험과 다른 경험을 통해 파일을 설정하는 동안 터미널 창을 열어두고 로그인하는 방법을 배웠습니다 .bashrc. 즉, "새 창"을 테스트하고 아직 로그인되어 있는 창에서 오류를 찾을 수 있습니다.

관련 정보