3
在shell配置脚本中,如何解释BSD上的coreutils与GNU之间的差异?
到本月为止,我的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上使用的策略将是相当客观的。