使用 sh -x 進行 shell 指令碼除錯
阿新 • • 發佈:2022-04-14
轉載請註明出處:
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 執行指令碼如下: