shell脚本编写学习三

本文深入探讨Linux环境下通过信号与系统进行高效进程通信的方法,包括信号的类型及其作用,如SIGHUP、SIGINT、SIGQUIT等,并详细说明如何利用bash shell的trap命令捕获和响应这些信号,实现脚本的自动化控制和异常处理。此外,文章还介绍了后台运行脚本、使用nohup命令在不使用控制台的情况下执行脚本,以及如何重新启动停止的作业和调整进程优先级。最后,提供了一个简明的指南,展示如何在.bashrc文件中定义函数,以便执行更复杂的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

脚本控制

Linux使用信号与系统上运行的进程进行通信

Linux信号

SIGHUP       挂起进程                             1

SIGINT         中断进程                              2

SIGQUIT       停止进程                             3

SIGKILL       无条件终止进程                   9

SIGTERM     如果可能的话终止进程       15

SIGSTOP     无条件停止,但不终止进程      17

SIGTSTP       停止或暂停进程,但不终止它     18

SIGCONT     重新启动停止的进程                     19

默认情况下,bash shell会忽略它接收的任何SIGQUIT(3)和SIGTERM(15)

可以接收1和2,当接收到1时,退出,

$sleep 100          当接收到Ctrl+C组合键可以生成SIGINT信号,中断运行

使用Ctrl+Z组合是,shell通知你的进程已经停止

捕获脚本

trap命令可以指定能够通过shell脚本监控和拦截的Linux信号

trap   commads signals

捕获脚本退出

只需要想trap命令添加EXIT信号

移除捕获

以后台模式运行脚本

以后台模式运行shell脚本很简单,只需要在命令后面加上一个&符号

运行多个后台作业,都在后面加&符号


在不使用控制台的情况下运行脚本

从终端会话启动shell脚本,然后让脚本在结束之前以后台模式运行,用命令nohup命令实现,                               

重新启动停止的作业

要以后台模式重新启动作业,可以使用带有作业编号的bg命令

nice命令可以启动命令时设置它的调度优先级。

renice命令自动更新运行进程的调度优先级,

使用at命令调度作业

at命令允许指定的Linux系统运行脚本的时间

格式:at [ -f filename ] time

使用batch命令的作用不是安排脚本在预设的时间运行,而是安排脚本在系统使用率低时运行

cron表格

Linux系统使用cron程序调度需定期运行的作业,cron

===============================================================================

创建函数

function name {

}

name属性定义了函数的唯一名称。

返回值

使用return命令以特定退出状态退出函数

使用函数输出可以使用,result=`name`

向函数传参,$1 $2 $#

函数中的全局变量和局部变量,局部变量加上local


数组变量和函数

myarray=(1 2 3 4 5)

函数的递归调用。bash shell可以创建函数的库文件

在shell中调用库文件,只需要添加下列命令

.  ./filename


在命令行中使用函数

脚本函数用于创建比较复杂的操作,


在.bashrc文件中定义函数



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值