如何有效地进行信号捕捉和系统管理?

stty size可以显示终端的大小,即行数和列数。

脚本编程知识点:
1.变量中的字符的长度:${VARNAME}

2.变量赋值
${parameter:-word}:如果parameter为空或未定义,则变量展开为"word",否则展开为parameter的值
${paramter:+word}:如果parameter为未定义,不做任何操作,否则,展开为“word”值
${paramter:=word};如果parameter为空或未定义,则变量展开为“word”,并将展开后的值给parameter;
${parameter:offset}
${parameter:offset:length}:取字串,从offset处后一个字符开始,length

3.脚本配置文件
/etc/rc.d/init.d/服务脚本
服务脚本支持配置文件:/etc/sysconfig/服务脚本同名的配置文件

  1. 局部变量
    local VAR_NAME=

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

mktemp /temp/file.XX
-d:创建目录

6.信号
kill -SINGAL PID
1:HUP
2:INT(Ctrl+C)
9.KILL
15.TERM

脚本中,能实现信号捕捉,但是9和15无法捕捉

trap命令:
trap ‘COMMAND’ 信号列表

7.一致性多个语句,语句间用分号分隔
c1是指ping的次数,-w是指执行的最后期限,也就是执行的时间,单位为秒

!/bin/bash

NET=192.168.0
trap 'echo "quit."exit 1' INT
for I in {200..254};do
if ping -c 1 -w 1 $NET.$1 &> /dev/null; then
echo "$NET.$1 is up"
else
echo "$NET.$1 is down"
fi
done

!/bin/bash

NET=192.168.0

clearup(){
echo "quit..."
exit 1

}
trap 'clearup' INT
for I in {200..254};do
if ping -c 1 -w 1 $NET.$1 &> /dev/null; then
echo "$NET.$1 is up"
else
echo "$NET.$1 is down"
fi
done

你可能感兴趣的:(如何有效地进行信号捕捉和系统管理?)