set -x 與 set +x
在liunx腳本中可用set -x就可有詳細的日志輸出.免的老是要echo了
下面的網(wǎng)上搜來的用法.
用于腳本調(diào)試。set是把它下面的命令打印到屏幕
set -x 是開啟 set +x是關閉 set -o是查看 (xtrace),set去追中一段代碼的顯示情況。
執(zhí)行set -x后,對整個腳本有效。
[root@mybox bin]# ls -l /bin/bash
+ ls --color=tty -l /bin/bash?
-rwxr-xr-x 1 root root 722684 Jul 12? 2006 /bin/bash
針對一部分script,可以選擇 set -x 和 set +x配套使用。比如在一個腳本里:
set -x??????????? # activate debugging from here
w
set +x??????????? # stop debugging from here
---------------------------------------------------------------------------------------------
set指令能設置所使用shell的執(zhí)行方式,可依照不同的需求來做設置
-a 標示已修改的變量,以供輸出至環(huán)境變量。?
-b 使被中止的后臺程序立刻回報執(zhí)行狀態(tài)。?
-C 轉(zhuǎn)向所產(chǎn)生的文件無法覆蓋已存在的文件。?
-d Shell預設會用雜湊表記憶使用過的指令,以加速指令的執(zhí)行。使用-d參數(shù)可取消。?
-e 若指令傳回值不等于0,則立即退出shell。?
-f 取消使用通配符。?
-h 自動記錄函數(shù)的所在位置。?
-H Shell 可利用"!"加<指令編號>的方式來執(zhí)行history中記錄的指令。?
-k 指令所給的參數(shù)都會被視為此指令的環(huán)境變量。?
-l 記錄for循環(huán)的變量名稱。?
-m 使用監(jiān)視模式。?
-n 只讀取指令,而不實際執(zhí)行。?
-p 啟動優(yōu)先順序模式。?
-P 啟動-P參數(shù)后,執(zhí)行指令時,會以實際的文件或目錄來取代符號連接。?
-t 執(zhí)行完隨后的指令,即退出shell。?
-u 當執(zhí)行時使用到未定義過的變量,則顯示錯誤信息。?
-v 顯示shell所讀取的輸入值。?
-x 執(zhí)行指令后,會先顯示該指令及所下的參數(shù)。?
+<參數(shù)> 取消某個set曾啟動的參數(shù)。
linux shell 腳本編寫好要經(jīng)過漫長的調(diào)試階段,可以使用sh -x 執(zhí)行。但是這種情況在遠程調(diào)用腳本的時候,就有諸多不便。
又想知道腳本內(nèi)部執(zhí)行的變量的值或執(zhí)行結(jié)果,這個時候可以使用在腳本內(nèi)部用 set -x 。
set去追蹤一段代碼的顯示情況,執(zhí)行后在整個腳本有效
set -x 開啟
set +x關閉
set -o 查看