shell脚本实现监控shell脚本的执行流程及变量的值(shell脚本实现监控进程)

admin3年前网络知识28

很多时候,我们都会写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
美国高防vps+ '[' 0 -eq 0 ']'
+ echo 'num1 is 0 again'

可见,程序中的流程是和./testexecutelog.sh后的第一个参数决定的。你还可以把第一个参数改为大于0的或小于0的值进行测试。

其中,最重要的一句是set -x,此句的含义为:在每个简单命令被扩展之后,显示PS4扩展值,之后是要执行的命令 。 若不执行这句,则不会将执行中变量的实际值打印到execlog中。有关set的使用可man set了解更多。

注意:exec 在对文件描述符进行操作的时候,也只有在这时,exec 不会覆盖你当前的 shell 环境。也即是不会启动个新的进程。

本文从互联网转载,来源地址:www.inhv.cn/linux-shell/171156.html,原作者保留一切权利,若侵权或引用不当,请联系测速网(inhv.cn)删除。【测速网,优质云服务器提供商】

《shell脚本实现监控shell脚本的执行流程及变量的值(shell脚本实现监控进程)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

大白菜安装linux教程图解(大白菜安装linux系统安装教程)

大白菜安装linux教程图解1、安装大白菜到U盘(制作启动盘),制作启动盘,选择“默认模式”开始制作,然后打开启动盘,创建文件夹为“MYEXT”,然后将Linux的ISO映像文件放入该文件中。正文内容...

图片工厂抠图功能怎么使用 图片工厂抠图功能使用的方法

今天小编为大家带来了图片工厂抠图功能使用的方法讲解,我们不妨一起去看看吧。图片工厂抠图功能使用的方法讲解打开抠图,选择一张需要扣图的图片。画出前景和背景的轮廓,如有不满意可以使用清除。点击处理图片(勾...

电脑wps发送文件给别人

以WPS2019为例,电脑wps发送文件给别人的方法:1、打开QQ聊天窗口,将该文件拖动到QQ消息输入框中。2、点击“发送”按钮即可将文件传输给QQ好友。WPS Office是由金山软件股份有限公司自...

抖音dou+是什么

抖音DOU+是为抖音创作者提供的视频加热工具,能够高效提升视频播放量与互动量,提升内容的曝光效果,助力抖音用户的多样化需求。抖音短视频,是一款音乐创意短视频社交软件,由今日头条孵化,该软件于2016年...

为什么电脑主机开了又自己关了

以win10系统的惠普电脑为例,电脑主机开了又自己关了的原因如下:1、电脑设置了自动关机或者自动休眠,只需要在windows电源管理里面将进入休眠状态设置成不进入即可。2、电脑硬件问题,电源电压不稳,...

中断响应的条件

以CPU为例,中断响应的条件:1、有中断源发出的中断请求。2、中断总允许位EA=1,即CPU开中断。3、申请中断的中断源的中断允许位为1,即中断没有被屏蔽。4、无同级或更高级中断正在被服务。5、当前的...