我是 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
而无需在每个环境上进行额外编辑。
附言
我的 friend 告诉我 AIX 上的 bash(Linux 服务器 IBM 版本?我不确定)也无法运行 ls --color=auto
。
最佳答案
ls
命令和其他命令如ps
和top
的实现是不同的,大多数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
关于linux - OS X 的 bash 脚本不能使用 --color=auto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42080913/