脚本编程

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---

以上是关于脚本编程的主要内容,如果未能解决你的问题,请参考以下文章

Scala和Kotlin脚本编程

Scala和Kotlin脚本编程

shell脚本编程学习笔记-shell脚本编程基础介绍

云知梦精华版Linux Shell脚本编程 Shell脚本编程35集视频教程-电脑天空

bash 脚本编程基础及配置文件

Shell脚本编程