linux信号变量,linux下Bash局部变量及信号捕捉等概念解释

本文介绍了Linux Bash脚本中关于局部变量的使用,通过对比带与不带`local`关键字声明变量的区别,展示了其作用域的影响。同时,讲解了如何使用`mktemp`命令创建临时文件和目录。此外,文章还深入讨论了信号捕捉,特别是如何使用`trap`命令来处理`INT`和`TERM`信号,提供了两个示例脚本,演示了在ping命令中捕获并响应Ctrl+C中断的方法。
摘要由CSDN通过智能技术生成

linux下Bash局部变量及信号捕捉等概念解释

1.脚本配置文件

/etc/rc.d/init.d/服务脚本可支持配置文件,并放置在/etc/sysconfig/下同名的配置文件

2.局部变量:只对本函数内部等有效,关键字为local

以两个脚本显示变量带或不带local时的区别

2.1编写如下脚本:vim A1.sh

#!/bin/bash

A=1

SUM() {

A=8

}

SUM  调用函数

for I in `seq $A 10`; do

echo -n "$I   "

done

echo

./A1.sh:执行脚本显示结果如下:

02e0483d69ac6ba39754e9ab5ab55cf0.png

2.2编写如下脚本:vim A2.sh、

#!/bin/bash

A=1

SUM() {

local A=8

}

SUM  调用函数

for I in `seq $A 10`; do

echo -n "$I   "

done

echo

20ecc0ca6d597479e52b933cf2b025f1.png

3.命令mktemp创建临时文件或目录

格式:mktemp /tmp/file.XX

-d: 创建为目录

89a835b6a3e8a877d02f66e626ebcaed.png

4.信号,脚本中能实现信号捕捉,但对9和15无法进行捕捉

格式:kill -SIGNAL PID

1: HUP  2: INT 9: KILL 15: TERM 19:SIGSTOP

Ctrl+c: SIGINT    Ctrl+Z:SIGSTOP

trap命令:trap '命令' 信号列表

代表跟踪信号并做出动作

命令中可执行多条语句或用函数

Bash中一行执行多个语句,语句间用分号分隔

4.1.编写ping IP地址如在线显示up,不在线显示down,按crtl+c中止ping脚本,如下:

#!/bin/bash

int() {

echo 'quiting!!!'

exit 8

}

trap 'int' INT   用函数

for I in {1..20}; do

if ping -c 1  -W1 1.1.1.$I &> /dev/null ; then

echo "1.1.1.$I is up"

else

echo "1.1.1.$I is down"

fi

done

4.2.编写ping IP地址如在线显示up,不在线显示down,按crtl+c中止ping脚本,如下:

#!/bin/bash

trap 'echo "Quiting";exit 1' INT   执行多条语句,用分号隔开

for I in {1..20}; do

if ping -c 1  -W1 1.1.1.$I &> /dev/null ; then

echo "1.1.1.$I is up"

else

echo "1.1.1.$I is down"

fi

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值