Linux 腳本中生成日志 set -x

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 查看

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容