我用下面的shell脚本如何检查输出仅包含一个特定的字符串
if [ $RESULT -eq 0 ] && [ -z $(ssh -f $line "w" | tail -n+3 | awk '{print $1}') ]
then
echo $line
echo $line >> hostlist_available
fi
我想这样做以下:
根据该[ $RESULT -eq 0 ]
保存条件, 无论是[ -z $(ssh -f $line "w" | tail -n+3 | awk '{print $1}') ]
或$(ssh -f $line "w" | tail -n+3 | awk '{print $1}') only contains string "zwang10"
持有,我们仍然继续循环。
命令$(ssh -f $line "w" | tail -n+3 | awk '{print $1}') ]
将输出类似以下情况:
只有我的名字之一
zwang10
我的好几个名称
zwang10
zwang10
有些人的名字
jack
jack
ben
个
的其它名称及矿山
jack
zwang10
zwang10
如何测试输出是否只包含我的名字zwang10
?
修订 我试图在如果
if [ $RESULT -eq 0 ] && [ [-z $(ssh -f $line "w" | tail -n+3 | awk '{print $1}')] || [[ $(ssh -f $line "w" | tail -n+3 | awk '{print $1}') == 'zwang10' ]]]
then
echo $line
echo $line >> hostlist_available
fi
到ADDD条件,但它说:syntax error in conditional expression
'[$(SSH -f $ line“w”| tail -n + 3 | awk'{print $ 1}')=='zwang10']]' – anubhava
@anubhava。谢谢。但是我很难将上面的句子添加到if条件中。 – 81235