OS X的bash脚本无法使用--color = auto

时间:2017-02-07 02:57:46

标签: linux bash macos shell

我是OS X以及其他Linux发行版(Ubuntu,CentOS,RHEL)用户的新手。

我想知道为什么OS X的bash不能使用--color=auto选项以及如何启用它。

我经常使用ls --color=auto,但在OS X上,它不起作用。以下是命令输出:

$ ls --color=auto
ls: illegal option -- -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]

我还阅读了ls的手册页,我发现ls -G是彩色输出的启用程序。 所以,在这个时候,没关系,但我有点烦人,因为我正在为我所有的linux环境共享.bashrc.bash_profile

有谁知道这些bash的不同?您是否有任何好主意在OS X和某些Linux发行版之间共享.bashrc.bash_profile,而无需在每个环境中进行额外编辑。

P.S。 我的朋友告诉我bash on AIX(Linux服务器IBM版本?我不确定)也无法运行ls --color=auto

1 个答案:

答案 0 :(得分:5)

ls命令和pstop等命令的实现是不同的,大多数utils都有GNU版本和BSD版本。 Linux采用GNU版本,而OSX可能采用BSD版本,因此这些命令的选项可能不同。

如果你想制作一个适用于所有地方的.bashrc.bash_profile,你应该在别名命令之前判断环境,如:

_myos="$(uname)"

case $_myos in
  Linux) alias ls='ls --color';;
  Darwin) alias ls='ls -G';;
  *) ;;
esac