一、变量定义和使用

  #DATESTR=`/bin/date +%Y%m%d`

  #TIME=$(date +%F)

  #echo $TIME

  #NUM=1

  #NAME='JOIN TOM'

  #NAME="JOIN TTY$NUM"

  #set[unset]  查看/删除已经定义的变量

二、位置变量

  #vi a.sh

  #!/bin/sh

  echo $0,$1,$2

  #sh a.sh 1 2 3

  输出 a.sh 1 2

三、特殊变量

  $?  上一个命令执行是否结果0:成功,非0:失败

  $*  命令的所有参数

  $#  参数个数

  $$  程序的pid

  $!  上一个后台命令的pid

  #vi b.sh

  #!/bin/sh

  echo '$#=' $#

  echo '$*=' $*

  echo '$?=' $?

  echo '$$=' $$

四、获取输入

  #vi c.sh

  #!/bin/sh

  read var1 var2 var3

  echo $var1,$var2,$var3

  sh -x(调试模式) c.sh

五、计算

  expr 3 + 1  对整数变量进行运算

  expr 3 \* 3  乘法需要转意

六、变量测试

  WEB=`/usr/bin/pgrep httpd`

  if [ "$WEB" != ""]

  then

    ...

  else

    ...

  fi

  

  if [ $# -ne 2 ]; then

    echo "参数个数不正确"

    exit 0  #0:正常退出,非0:不正常退出

  fi

  ✔流程控制

  for VAR in 1 2 3

  do

  echo $VAR

  done

  ✔awk:分段提取内容

  awk -F 分隔符 '命令'

  awk -F: '$3==0 {print $1}' /etc/passwd  #显示uid为0的用户名

  awk -F: 'length($2)==0 {print $1}' /etc/shadow  #显示密码为空的用户

  ✔case

  read op

  case $op in

    C)

      myfunc

    ;;

    D)

      echo "DD"

    ;;

    *)

      echo "default"

  esac

  myfunc(){

    echo 1;

 

  }

  ✔while until(false就执行)

  num=1

  while [ $num -le 10]

  do

    echo $num

    num=`expr $num + 1`

 

  done