我一直在编写一个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
答案 0 :(得分:1)
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 -
添加功能