在脚本编程中,我们会遇到各种各样需要独特方式的来表述需求的地方,那么我们就系要一些小技巧来完成,今天我们就来讨论关于脚本的知识点及实例演示。

1、 变量中字符的长度

${#变量名 }

例:显示star的字符长度 A=star echo${#A}”

2、 变量赋值

我们在使用read时希望用户给一个值,但如果用户没有给值时,脚本就会报错,那么我们就需要给出一个默认值来避免错误,这就是变量赋值,格式如下:

${变量名:-word}:如果变量为空或未定义,则变量展开为“word”;否则,展开为parameter的值;

例:当A为空时,显示A30.   A=””  echo ${A:-30}

${变量名:+word}:如果变量为空或未定义,不做任何操作;否则,则展开为“word”值;

例:当A3时,显示A30.   A=3  echo ${A:+30}

${变量名:=word}:如果变量为空或未定义,则变量展开为“word”,并将展开后的值赋值给变量;

${变量名:offset}

${变量名:offset(数字):length(数字)}:取子串,从offset处的后一个字符开始,取lenth长的子串;

例:取hello后三位llo. A=”hello”  echo ${A:2:3}

3、脚本配置文件

/etc/rc.d/init.d/服务脚本

服务脚本支持配置文件,存放/etc/sysconfig/目录下,起名和服务脚本同名的配置文件

 

4、局部变量

local 变量名=:只在变量里有效,不在全局有效。

例:编写脚本

a=1

 

test() {

  a=$[3+4]

}

 

test

for I in `seq $a 10`; do

  echo $I

done 

其脚本执行结果为7 8 9 10.而想让变量中的赋值不用在全局只要在a=$[3+4]前加local

5、命令mktemp

创建临时文件或目录

 

mktemp /tmp/file.XX

       -d: 创建为目录

      

6、信号

进程间通讯的方式,是一个进程发送给另一个进程的短小信息,用于进行控制其运行机制的。

kill –SIG信号 PID

       1: HUP当用户退出shell时,由该shell启动的所有进程将收到这个信号,默认动作为终止进程

       2: INT当用户按下了<Ctrl+C>组合键时,用户终端向正在运行中的由该终端启动的程序发出此信号。默认动作为终止里程。

       9: KILL(ctrl+\)无条件终止进程。本信号不能被忽略,处理和阻塞。默认动作为终止进程。它向系统管理员提供了可以杀死任何进程的方法。

       15: TERM程序结束信号,与SIGKILL不同的是,该信号可以被阻塞和终止。通常用来要示程序正常退出。执行shell命令Kill时,缺省产生这个信号。默认动作为终止进程。

      

脚本中,能实现信号捕捉,但915无法捕捉

trap命令:

       trap  '命令' 信号列表

例:捕捉SIGINT信号后输出you gou.  Trap ‘echo “you go”’ SIGINT

      

7、一行执行多个语句,语句间用分号分隔

例:同时进行echoping命令  ping 192.168.0.1echo no more”

 

以上就是关于脚本编程中的常用技巧,虽然简单但很使用。谢谢大家的参与。