主頁 > 知識庫 > shell腳本實現(xiàn)監(jiān)控shell腳本的執(zhí)行流程及變量的值

shell腳本實現(xiàn)監(jiān)控shell腳本的執(zhí)行流程及變量的值

熱門標簽:電銷機器人 劍魚 安裝外呼系統(tǒng)費用 曲阜400電話辦理 寧波智能外呼系統(tǒng)公司 申請公司400電話要注意什么 地圖標注輻射圖案 聯(lián)通電話機器人怎么接 衛(wèi)星地圖標注地名 奧維互動地圖標注參數(shù)

很多時候,我們都會寫shell程序來完成一些不用重復造輪子的時刻,但是,又因為shell語句中也會有函數(shù),也會有變量,在運行后到底執(zhí)行了哪些相關(guān)的操作,就需要對具體執(zhí)行過程中的變量等可變的因素的監(jiān)控,那么我們下面就寫個小小的shell例子,來完成這個對執(zhí)行過程中條件語句中的變量的變化的監(jiān)控和整個程序的執(zhí)行流程的觀察。

shell程序代碼:

復制代碼 代碼如下:

#!/bin/bash
function setlogfile
{
    if ! [ -z "$1" ]; then
        echo "logfilename is not empty!" >> kthh
        exec 2>> $1
        exec 1>> $1
    fi   
}

num1=$1
logfile=$2
execlogfile=$3

setlogfile ${execlogfile}
set -x
if [ $num1 -eq 0 ]; then
    echo "num1 is 0">> ${logfile}
elif [ $num1 -ge 0 ]; then
    echo "num1 is grate 0">> ${logfile}
else
    echo "num1 is less 0">> ${logfile}
fi
/sbin/shutdown -k 10
if [ $num1 -eq 0 ]; then
    echo "num1 is 0 again">> ${logfile}
fi


在命令行中執(zhí)行:
復制代碼 代碼如下:

[root@UFO shellprogram]# ./testexecutelog.sh 0 msglog execlog

在以上的shell腳本程序中 num1對應(yīng)的值為命令行中的0  logfile的值為msglog  execlogfile的值為execlog。

函數(shù) setlogfile的使用為 setlogfile 日志文件名,在例子中的使用setlogfile ${execlogfile},函數(shù)中的exec 2>> $1;exec 1>> $1表示把標準輸出和標準錯誤輸出的信息都重定向到execlog文件中。

下面我們來看看execlogfile中的內(nèi)容,就可以看到shell程序的執(zhí)行流程和執(zhí)行過程中的變量的值的變化。

復制代碼 代碼如下:

[root@UFO shellprogram]# cat execlog
+ '[' 0 -eq 0 ']'
+ echo 'num1 is 0'
+ /sbin/shutdown -k 10
+ '[' 0 -eq 0 ']'
+ echo 'num1 is 0 again'

可見,程序中的流程是和./testexecutelog.sh后的第一個參數(shù)決定的。你還可以把第一個參數(shù)改為大于0的或小于0的值進行測試。

其中,最重要的一句是set -x,此句的含義為:在每個簡單命令被擴展之后,顯示PS4擴展值,之后是要執(zhí)行的命令 。 若不執(zhí)行這句,則不會將執(zhí)行中變量的實際值打印到execlog中。有關(guān)set的使用可man set了解更多。

注意:exec 在對文件描述符進行操作的時候,也只有在這時,exec 不會覆蓋你當前的 shell 環(huán)境。也即是不會啟動個新的進程。

您可能感興趣的文章:
  • Shell腳本實現(xiàn)Linux系統(tǒng)和進程資源監(jiān)控
  • Shell腳本實現(xiàn)監(jiān)控MySQL主從同步
  • Shell腳本實現(xiàn)監(jiān)控iptables運行狀態(tài)
  • Shell腳本實現(xiàn)監(jiān)控rsync數(shù)據(jù)是否傳輸完
  • Shell腳本實現(xiàn)監(jiān)控kingate并自動啟動
  • Shell腳本實現(xiàn)監(jiān)控iptables規(guī)則是否被修改
  • Shell腳本實現(xiàn)memcache緩存命中率監(jiān)控
  • 一個監(jiān)控Squid運行進程數(shù)并自動重啟的簡潔Shell腳本分享
  • Shell腳本編寫Nagios插件監(jiān)控程序資源占用
  • Linux服務(wù)器硬件運行狀態(tài)及故障郵件提醒的監(jiān)控腳本分享

標簽:江西 遵義 安康 大興安嶺 三門峽 大慶 仙桃 上饒

巨人網(wǎng)絡(luò)通訊聲明:本文標題《shell腳本實現(xiàn)監(jiān)控shell腳本的執(zhí)行流程及變量的值》,本文關(guān)鍵詞  shell,腳本,實現(xiàn),監(jiān)控,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《shell腳本實現(xiàn)監(jiān)控shell腳本的執(zhí)行流程及變量的值》相關(guān)的同類信息!
  • 本頁收集關(guān)于shell腳本實現(xiàn)監(jiān)控shell腳本的執(zhí)行流程及變量的值的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章