今天接到一個這個要求,就是腳本執行結果中包含某個字符串,要求查出來。
我給的思路是 按照腳本名和結果 以 追加 的方式寫入文本,然后從這個文本中查找相應的內容。
對方給的思路是以執行結果來判斷,就自己實現了這種方式
首先是按照目錄寫入腳本,這里是在腳本中寫入了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做一個對比。
