shell_语法

时间:2021-07-05 19:15:49

1、运算符:

  1、基本语法:$((运算式))或$[运算式]

  2、expr + n  // 注意运算符中间有空格

  再用expr时要加 ` ` 号,* 号加转义字符\  \* ,表示乘

2、判断语句

  [ condition ]  // 注意condition前后要有空格,非空返回true,可使用$?验证(0位true >1位false)

  两个数比较

  = 字符串比较

  -lt 小于

  -le 小于等于

  -eq 等于

  -gt 大于

  -ge 大于等于

  -ne 不等于

  文件权限比较

  -r 有读的权限

  -w 有写得权限

  -x 有执行得权限

  按照文件类型判断

  -f 文件存在并且是一个常规文件

  -e 文件存在

  -d 文件存在并是一个目录

  例:

    [ 22 -lt 23]

    [ -w shtu.txt ]

    [ -e /root/sh.log ]

  注意: 前后空格

3、流程控制

  if 判断

    if [ 条件判断式 ];then

      .....

    elif [ 条件判断式 ];then

      ......

    else

      ......

    fi

    或者

    if [ 条件判断式 ]

    then

      .....

    fi

   注意;if后面的空格和条件判断式前后的空格

  case语句:

    case $变量名 in

      值1)

      .........  // 如果值等于1,侧执行1

    ;;

    值2)

      .........  // 如果值等于2,则执行2

    ;;

    esac

  for循环:

    for 变量 in 值1 值2 .... 或者可以是一个数组

      do

        ....

      done

    或者:

    for (( i=1; i<10; i=$i+1 ))

    do

      ....

    done

  while循环:

    while[ 条件判断式 ]

    do

      .....

    done

4、read读取控制台输入

  read(选项)(参数)

  选项;

    -p : 指定读取值时的提示符

    -t : 指定读取值时的等待时间

  参数:

    变量:指定读取值的变量名

  例:read -p "你的名字:" name  // 注意空格,在shell脚本用的时候加 ` ` 包着

5、函数

  basename 文件路径  // 删除所有前缀包括最后一个 / ,只留下一个文件名, 在shell脚本中使用时要用  `  ` 包着

  dirname 文件路径   // 去除文件名,返回一个路径 。在shell脚本中使用时要用  ` ` 包着,

  注意:在shell脚本中运行一些命令时,如果不管用,用  ` ` 包着使用。例; `pwd -p`