加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 测试是否支持命令选项

发布时间:2020-12-15 22:01:00 所属栏目:安全 来源:网络整理
导读:在我的.bashrc中,如果支持–color选项,我想将grep别名为grep –color.但是像msysgit这样的旧系统不支持–color: $grep --colorgrep: unrecognized option '--color'$grep --versiongrep (GNU grep) 2.4.2 在.bashrc中,如何确定是否支持选项?我可以测试一个
在我的.bashrc中,如果支持–color选项,我想将grep别名为grep –color.但是像msysgit这样的旧系统不支持–color:

$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命令并添加颜色选项E.g.

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

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

所以你的bashrc看起来像:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读