到本月为止,我的shell配置非常简单(主要是a .bashrc
或.bash_profile
主要带有一些别名),但是我一直在对其进行重构,以便根据我是否使用zsh和bash来获得不同的行为。他们首先获取一个通用的shell配置文件,该文件应适用于任何情况,然后专门针对所使用的特定shell(我对此进行符号链接)。
今天ls
停止工作时,我感到很惊讶。原来,在重构期间.bashrc
,有一个别名
alias ls='ls --color=always'
这ls
在OSX的Terminal上用bash 破坏了东西。一旦我看到BSD ls
喜欢-G
彩色,但是GNU(或Ubuntu上的任何东西)喜欢--color
,很明显,很多选择是不同的。
我的问题是,解决BSD和GNU coreutils之间的选项差异的最佳方法是什么?我是否应该在if
块中测试一个env变量,以查看正在使用的操作系统并应用正确的行为?还是为每个操作系统制作单独的配置文件更有意义?
尽管对这些问题的回答可能是主观的,但似乎BSD和GNU coreutils之间差异范围的缩小和解决这些问题以使通用配置可在大多数* nix上使用的策略将是相当客观的。
ls -c
有所不同ls --color
。编辑了您要解决的问题。