麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Linux Shell > 正文

shell腳本實現監控shell腳本的執行流程及變量的值

2020-07-27 19:07:55
字體:
來源:轉載
供稿:網友

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

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


在命令行中執行:
復制代碼 代碼如下:

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

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

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

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

復制代碼 代碼如下:

[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后的第一個參數決定的。你還可以把第一個參數改為大于0的或小于0的值進行測試。

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91一区二区在线观看 | 麻豆视频观看 | 亚洲第一页综合 | 91av网址| 97伦理| 美女久久久久久久久 | 欧美黑人一级 | 中文字幕欧美日韩 | 99影视电影电视剧在线播放 | 91精品观看91久久久久久国产 | 日韩黄色一级视频 | 国产精品欧美久久久久一区二区 | 亚洲午夜电影 | 久久精品视频首页 | h色网站在线观看 | 日韩视频中文 | 国产青草视频在线观看 | xxxx hd videos| 国产成年人小视频 | 久色porn | 美国黄色毛片女人性生活片 | 青草久久av | 九九热视频免费 | av手机在线电影 | 妇子乱av一区二区三区 | 欧美成人精品欧美一级 | 久久av免费 | 亚洲综合一区在线观看 | 宅男噜噜噜66国产在线观看 | 欧美一级成人一区二区三区 | 亚洲最新黄色网址 | 黄色网址在线视频 | 大奶一级片 | 日产精品久久久一区二区福利 | 粉嫩av一区二区三区四区在线观看 | 成人aaaaa片毛片按摩 | 国产亚洲精品综合一区91 | 91成 | 亚州精品在线视频 | 午夜精品久久久久久久久久久久久蜜桃 | 一日本道久久久精品国产 |