Answers:
Bash本身将基本相同。会有一些细微的差异,但是这些差异都不会影响脚本的可移植性。
主要问题是MacOS coreutils基于FreeBSD,而您习惯使用的实用程序很可能来自GNU项目。FreeBSD coreutils并不总是与GNU coreutils兼容。GNU和FreeBSD版本的sed,grep,ps和其他实用程序之间在性能和行为上存在差异。
你可以安装GNU的coreutils,但他们有g-
前缀(例如gcat
对于cat
)。这不是一个好主意的GNU的coreutils更换的MacOS的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
)。我已经撞了几次墙,试图弄清楚为什么我的Ubuntu脚本在Mac上无法产生相同的输出。