gpt4 book ai didi

linux - 在 bash 脚本中搜索子字符串将不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:43:16 25 4
gpt4 key购买 nike

我一直在编写一个 bash 脚本来调用我的 .bashrc 文件来打印我/usr/bin 文件夹中随机命令的 whatis 结果,并希望排除在结果中返回“不合适”的命令,甚至如果我使用 grep、wc、expr、==,似乎没有任何效果。我几乎用过每个例子 here , 和 here没有任何进展。这是我到目前为止所拥有的,但是当它发现包含“不合适的东西”的东西时,它无法做我想做的事。如果有人能弄清楚如何让它工作或者在这种情况下有什么好的解决方案,我会很高兴。

#! /bin/bash

echo "Did you know that:";
while :
do
RESULT=$(whatis $(ls /usr/bin | shuf -n 1))
if [[ $RESULT != *"nothing appropriate"* ]]
then
echo $RESULT
break
fi
done

最佳答案

whatis 在标准错误流上打印 nothing appropriate 消息。此流未被 $( ) 捕获。这就是您遇到问题的原因。

这是一种修复方法:

#! /bin/bash

echo "Did you know that:";
while :
do
RESULT=$(whatis $(ls /usr/bin | shuf -n 1) 2>&1 | cat - )
if [[ $RESULT != *"nothing appropriate"* ]]
then
echo $RESULT
break
fi
done

2>&1 | cat - 添加就可以了

关于linux - 在 bash 脚本中搜索子字符串将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40372974/

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