脚本控制
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文件中定义函数