답변:
배쉬 자체는 대부분 동일합니다. 약간의 차이가 있지만 스크립트의 이식성에는 영향을 미치지 않습니다.
가장 큰 문제는 MacOS coreutils가 FreeBSD 기반이고 GNU 유틸리티에서 가장 많이 사용되는 유틸리티라는 것입니다. FreeBSD coreutils가 GNU coreutils와 항상 호환되는 것은 아닙니다. sed , grep , ps 및 기타 유틸리티 의 GNU 및 FreeBSD 버전간에 성능 및 동작 차이가 있습니다 .
당신은 GNU의로 coreutils를 설치할 수 있지만이 g-
접두사 (예 gcat
에 대한 cat
). 그건 좋은 생각이 아니다 는 GNU로 coreutils와 맥 OS로 coreutils 교체.
중요한 경우 bash
Mac OS X Mountain Lion의 버전은 여전히 3.2입니다. 요즘 대부분의 Linux 배포판은 4.x와 함께 제공되므로 버전 4 기능이 누락됩니다. 현재 Homebrew에서 4.2.45 버전을 임시 해결책으로 사용할 수 있습니다. Mavericks의 버전이 무엇인지 모르겠습니다. 아는 사람이 아직 말할 수 있는지 확실하지 않습니다.
다른 사람들이 언급했듯이 (이미 언급 된 버전 이외) bash
동일 bash
하지만 Mac OS X은 (주로) BSD 사용자 영역을 사용합니다. 많은 표준 시스템 유틸리티에는 약간 다른 옵션이 있거나 약간 다르게 작동합니다. 불행히도 여기에 나열하기에는 너무 많습니다.
ps
와 같이 다른 플래그를 가짐grep
). 내 우분투 스크립트가 Mac에서 동일한 출력을 생성하지 않는 이유를 알아 내려고 두 번 벽에 머리를 부딪쳤다.