![](/img/trans.png)
[英]Check if a file contains a specific string and also if it is commented or not
[英]How to check the output only contains a specific string
我使用以下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中添加條件
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
但是它說syntax error in conditional expression
有這種方式:
if [[ $RESULT -eq 0 ]]; then
output=$(ssh -f $line "w" | tail -n+3 | awk '{print $1}')
if [[ -z $output || $output == 'zwang10' ]]; then
echo $line
echo $line >> hostlist_available
fi
fi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.