千家信息网

如何用shell脚本实现监控shell脚本的执行流程及变量的值

发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,本篇内容主要讲解"如何用shell脚本实现监控shell脚本的执行流程及变量的值",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何用shell脚本实现监控
千家信息网最后更新 2024年10月21日如何用shell脚本实现监控shell脚本的执行流程及变量的值

本篇内容主要讲解"如何用shell脚本实现监控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 环境。也即是不会启动个新的进程。

到此,相信大家对"如何用shell脚本实现监控shell脚本的执行流程及变量的值"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

脚本 变量 流程 代码 命令 程序 监控 内容 文件 函数 参数 实际 更多 标准 学习 输出 实用 更深 重要 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 达蒙数据库关联表空间 泰坦陨落2服务器黑客 查询语句插入其他数据库表 华三服务器装系统找不到驱动器 共建网络安全宣传语 手机虚拟服务器安全吗 诛仙单机版自设服务器 网易云车机版服务器错误 中越水果贸易联合国商品贸易统计数据库 计算机一级网络技术考试答案 杭州软件开发定制公司哪家靠谱 河南钢板套料软件开发商 服务器uid 按钮图标 计算机网络技术主要学些什么 天宇e算软件怎么初始化数据库 vpncup服务器 微信无法连到服务器怎么回事 服务器为什么老坏系统盘 软件开发本科工资标准 如何做好软件开发服务 不连接数据库的管理系统 南阳市计算机软件开发招工 金仓数据库v8 登录密码 赣州哪个软件开发好 网络安全知识竞赛通知模板 怎么将数据库文件导出 为啥谷歌浏览器无法连接到服务器 销售易crm软件开发岗位 阿里云服务器搭建ftp 网络安全专业书籍百度网盘下载
0