[shell]實現腳本執行結果匹配某個字符串


今天接到一個這個要求,就是腳本執行結果中包含某個字符串,要求查出來。

我給的思路是 按照腳本名和結果 以 追加 的方式寫入文本,然后從這個文本中查找相應的內容。

對方給的思路是以執行結果來判斷,就自己實現了這種方式

首先是按照目錄寫入腳本,這里是在腳本中寫入了echo $i的內容。也就是腳本有執行結果。

#!/bin/bash
SH_DIR=sh_dir
cd $SH_DIR
for i in $(seq 50);
do
        echo "echo $i">$i.sh
done

然后是循環執行並查找的腳本,這里是全部遍歷了一遍,可以自己做成僅發現第一個就終止。

 1 #!/bin/bash
 2 SH_DIR=sh_dir
 3 for runsh in `ls $SH_DIR | grep .sh`;
 4 do
 5         echo $runsh
 6         result=`./$SH_DIR/$runsh`
 7         echo $result
 8         echo $result | grep '8'
 9 
10         if [ $? -ne 0 ];
11         then 
12                 echo ""
13         else
14                 echo "find it in $runsh "
15         fi
16 done

其中第5行和第7行都可以注釋,就顯示的更清楚了。

 

我覺得用python實現可能更快一點。估計我學習python的時間更長。

偽代碼跟這個類似,先for循環遍歷可執行文件,然后存儲結果,用if做一個對比。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM