如何使用自制软件在linux shell环境和macos之间保持一致性?

时间:2018-11-07 22:00:24

标签: homebrew

我正在尝试在* nix和macos之间的shell配置中开发互操作性。我使用的各种脚本和配置取决于gnu实用程序,并假定它们位于PATH中。为此,我在可能且适当的地方安装了许多带有自制软件和--with-default-names开关的GNU命令行工具。

但是,在自制程序公式中,binutils和coreutils软件包未附带--with-default-names开关。要在交互式外壳中实现奇偶校验,我可以简单地设置别名,例如alias dircolors='gdircolors'。但是,脚本是在子Shell中执行的,因此不会继承别名,因此dircolors将失败。测试依赖项的存在也不起作用,因为在chown的情况下,将使用内置程序包(如果我使用macos发行版中不存在的功能,则失败。)

这时,我正在考虑创建一堆shell脚本,以测试该实用程序的gnu版本是否存在,并在找到后执行该脚本,然后将其放置在PATH中,就像这样:

$ cat chmod
if command -v gchmod > /dev/null 2> /dev/null ; then
  gchmod "$@"
else
  chmod "$@"
fi

这似乎太笨拙了,不过,我宁愿避免这种情况。

除了自己构建binutils和coreutils外,还有哪些其他解决方案呢?

0 个答案:

没有答案