gpt4 book ai didi

bash - 测试命令选项是否被支持

转载 作者:行者123 更新时间:2023-11-29 09:09:44 26 4
gpt4 key购买 nike

在我的 .bashrc 中,我想将 grep 别名为 grep --color if --color 支持选项。但是 --color 在 msysgit 等旧系统上不受支持:

$ grep --color
grep: unrecognized option '--color'
$ grep --version
grep (GNU grep) 2.4.2

在.bashrc 中,如何判断一个选项是否被支持?我可以测试硬编码的版本号,但对于 >2.5 的版本会中断:

if [[ `grep --version` == *2.5* ]] ; then
alias grep='grep --color=auto'
fi

是否有更可靠的方法来测试命令是否支持某个选项?

最佳答案

执行一个您知道会成功的 grep 命令并添加颜色选项,例如

grep --color "a" <<< "a"

如果选项存在则返回码为0,否则为正。

所以你的 bashrc 看起来像:

if grep --color "a" <<<"a" &>/dev/null; then
alias grep='grep --color=auto'
fi

&> 将 stdout stderr 发送到/dev/null,因此如果命令失败,它会被静音。但它仍然会返回错误代码,从而阻止设置别名。

关于bash - 测试命令选项是否被支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14281436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com