1. 程式人生 > 實用技巧 >shell指令碼的除錯sh-x

shell指令碼的除錯sh-x

轉至:https://blog.csdn.net/yjgithub/article/details/80908079

目錄

一.簡介
二.sh -x 指令碼名.sh
三.set -x

一.簡介

使用sh -x除錯shell指令碼
“-x”選項可用來跟蹤指令碼的執行,是除錯shell指令碼的強有力工具。“-x”選項使shell在執行指令碼的過程中把它實際執行的每一個命令列顯示出來,並且在行首顯示一個”+”號。 “+”號後面顯示的是經過了變數替換之後的命令列的內容,有助於分析實際執行的是什麼命令。 “-x”選項使用起來簡單方便,可以輕鬆對付大多數的shell除錯任務,應把其當作首選的除錯手段。

shell的執行選項除了可以在啟動shell時指定外,亦可在指令碼中用set命令來指定。 “set -引數”表示啟用某選項,”set +引數”表示關閉某選項。有時候我們並不需要在啟動時用”-x”選項來跟蹤所有的命令列,這時我們可以在指令碼中使用set命令,如以下指令碼片段所示:

set -x    #啟動"-x"選項 要跟蹤的程式段 
set +x     #關閉"-x"選項

二.sh -x 指令碼名.sh

[root@hadoop1 all]# cat 2018070401.sh
#!/bin/bash
var=$1
echo
$var [root@hadoop1 all]# sh -x 2018070401.sh hello #控制檯輸出 + var=hello + echo hello hello #帶+的表示被跟蹤的程式碼

三.set -x

對指令碼內部部分程式碼進行跟蹤,被跟蹤的程式碼以set -x開始,與set +x結束

[root@master shellexer]# cat 2018070401.sh
#!/bin/bash
var=$1
set -x
eeco $var
set +x
echo $var
[root@hadoop1 all]# sh 2018070401.sh hello
#控制檯輸出
+ eeco hello
2018070401.sh: line 4: eeco: command not found + set +x hello

轉至:https://www.cnblogs.com/laokanblog/p/11055197.html

1. 幾種不錯的除錯方法

(1)使用echo列印資訊
類似與python的print列印
(2)命令列中使用sh -x script.sh
(3)shell指令碼中設定
set -x 開啟除錯、
set +x 禁止除錯

2. 除錯方式的選擇

首選除錯方式sh -x ,簡單便捷。她能跟蹤執行資訊,將執行指令碼的過程中把實際執行的每個命令顯示出來,行首顯示+, +後面顯示經過替換之後的命令列內容,有助於分析實際執行的是什麼命令,這裡也相當於打印出來了執行的命令。