簡體   English   中英

如何檢查輸出僅包含特定字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM