【发布时间】:2012-09-02 22:38:55
【问题描述】:
我想更改命令,以便将命令行标志(选项)放在命令行参数之前,这是由 GNU getopt 自动完成的。
Mac 使用 BSD getopt,因此缺少该功能。我想调整 bash,以便在执行一个命令时,我运行一个脚本来解析标志和参数,重新排序它们并执行重新排序的命令。
这样,两个
ls -lh /tmp
ls /tmp -lh
可以在我的 Mac 终端上运行。
【问题讨论】:
-
如果有 3 个或更多选项
cp -R /root /bkp,您会假设什么样的顺序变化 -
现在我想了想,您知道您可以通过 coreutils macport macports.org/ports.php?by=name&substr=coreutils(可能还有其他)在您的 Mac 上获得很多 GNU 工具吗?也许这可以帮助你的努力。
-
@Mat,我认为替换它们既乏味又危险。此外,它不适用于其他依赖 BSD getopt 的可执行文件。我正在考虑构建一个执行重新排序然后调用 bash 的 shell。
标签: bash terminal command-line-arguments bsd getopt