脚本编程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了脚本编程相关的知识,希望对你有一定的参考价值。
1、变量中字符的长度:${#VARNAME}
[[email protected] ~]# tt=kad123; echo ${ #tt }
6
2、变量赋值等:
${parameter:-word}:如parameter为空或未定义,则变量展开为“word”;否则,展开为parameter的值;
${parameter:+word}:如parameter为空或未定义,不做任何操作;否则,则展开为“word”值;
${parameter:=word}:如parameter为空或未定义,则变量展开为“word”,并将展开后的值赋值给parameter;
${parameter:offset}
${parameter:offset:length}:取子串,从offset处的后一个字符开始,取lenth长的子串;
[[email protected] tmp]# A=33
[[email protected] tmp]# echo ${A:-50}
33
[[email protected] tmp]# unset A #删除变量
[[email protected] tmp]# echo ${A:-50}
50
3、脚本配置文件
/etc/rc.d/init.d/服务脚本
服务脚本支持配置文件:/etc/sysconfig/服务脚本同名的配置文件
[[email protected] ~]# cat a.sh
#!/bin/bash
. /root/a.conf
TEST=${TEST:-info}
[ -n "$TEST" ] && echo $TEST
[[email protected] ~]# cat a.conf
TEST=
[[email protected] ~]# ./a.sh
info
4、局部变量 local VAR_NAME=
5、创建临时文件或目录: mktemp /tmp/file.XX
-d: 创建为目录
[[email protected] ~]# FILE=`mktemp /tmp/file.XXXXX`
[[email protected] ~]# echo $FILE
/tmp/file.RnDpc
[[email protected] ~]# FILE=`mktemp -d /tmp/file.XXXXX`
[[email protected] ~]# file $FILE
/tmp/file.GzxiL: directory
6、信号 kill -SIGNAL PID 1: HUP 2: INT 9: KILL 15: TERM
脚本中,能实现信号捕捉,但9和15无法捕捉 Ctrl+c: SIGINT
trap命令:
trap‘COMMAND‘ 信号列表
#!/bin/bash
#
I=131
FILE=`mktemp /tmp/file.XXXXXX`
clearup() {
rm -f $FILE && echo " quit, bye..."
exit 1
}
trap ‘clearup‘ INT
for I in {200..210} ; do
ping -c 1 110.119.131.$I &> /dev/null
NU=$?
if [ $NU -eq 0 ] ; then
echo "110.119.131.$I is up."
else
echo "110.119.131.$I is down."
fi
done
---end---
以上是关于脚本编程的主要内容,如果未能解决你的问题,请参考以下文章