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



我是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,而无需对每个环境进行额外编辑。

附言我的朋友告诉我在 AIX(Linux 服务器 IBM 版本?我不确定(也无法运行ls --color=auto

ls命令和其他命令(如 pstop(的实现是不同的,大多数实用程序都有 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

使用 homebrew 安装 GNU coreutils

brew install coreutils
export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH"

有用的链接:https://github.com/sorin-ionescu/prezto/issues/966

最新更新