1. 程式人生 > 其它 >使用 sh -x 進行 shell 指令碼除錯

使用 sh -x 進行 shell 指令碼除錯

轉載請註明出處:

    sh  -x 命令的執行,會將shell 命令的每一個執行步驟進行列印,可以檢視到 整個命令或指令碼的執行過程的 debug。

  sh -n 只讀取shell指令碼,檢測語法錯誤,但不實際執行

  使用上面兩個命令可以幫助我們編寫shell指令碼,使用示例:

  1.  從指定目錄的所有jar包中尋找 包含 log4j 與 fastjson 的jar檔案,使用 sh -x 檢視執行的每個過程

find /opt/skywalking/ -name "*.jar"|grep -v "jvm"|awk '{print "jar -tvf " $1}'|sh -x|egrep "
log4j-|fastjson-"

 

  2. 使用 sh -x shell.sh 檢視指令碼執行的整個過程

  指令碼內容如下:

#!/bin/bash
sum=0
for value in `cat console.log|grep 'filterStr'|awk '{print $2}'`
        do
                sum=$(($sum+$value))
        done
echo "總共耗時:"$sum

totalCount=`cat console.log|grep 'filterStr'|awk '{print $2}'|wc -l`
echo 
"總共請求時間為:"$totalCount #計算請求的平均時間 avageTime=$(($sum/$totalCount)) echo "平均請求響應時間為: "$avageTime

  使用 sh -x test.sh 執行指令碼如下: