shell脚本编程原理

1、shell脚本语言介绍
    优点:调用os(操作系统)的命令行,来实现所有功能
    缺点:没有库调用(区分python)
    变量:全局变量、局部变量、本地变量、传参
  /etc/shells/ --查看当前系统支持的shell程序
  echo $SHELL -- 查看当前会话的shell程序
  /etc/passwd -- 制定了用户默认支持的shell程序
   shell的执行:
      1)bash命令来执行脚本
          -n 查看shell脚本的逻辑错误(单词查不出)
          -x 逐行显示执行的脚本程序(方便排错)
      2)授权 chmod +x filename.sh
        使用全路径执行脚本,即可./filename.sh

2、变量
    环境变量($HOME、$SHELL、)    
    局部变量 declare命令 -- 定义变量类型
    本地变量  local在函数中使用
    变量类型:
        数值型:int
        整型、浮点型(float)、布尔值(true/false)
        字符串:
        1)普通字符及字符串
        2)数组
    编程语言的分类:
        强类型语言 -- 数值必须被定义,才能进行处理或运算
        弱类型语言 -- 编程语言可以自动识别变量类型
        【多态--一个数据具有多个属性,而最后使用的属性取决于和他进行运算事物数据】
    传参
        $? ---上一条命令执行状态(0 正确 1-255错误)
        $1 $2 .. ${10}  --- 命令后面传入脚本的数据,以空格为分隔符
        $# --- 统计传参数量   ${$#}:表示传参的最后一个数
        $*  --- 表示所有传参,所有传参以字符串形式输出
        $@ --- 表示所有传参,所有传参以列表形式输出
    定义变量格式:
        NAME=VALUE(一个等号是赋值,两个等号是判断)
        我们通过命令declare定义变量类型:
        declare -i 整数
        declare -a 数组
    变量命令:
        1)下换线方式指定变量类型
        2)驼峰式命名方式

3、test文本测试、条件判断
      在脚本中,我们需要进行语句分支;说白了,就是要做判断
      判断就是使用test命令来实现;
      使用格式:
        1)test[option]file
        2)[ 条件语句 ] :【 使用比较选项、判断选项和关联选项时用[] 】
      常见的test选项:
         比较选项:
         -eq -ne -gt -lt -ge -le
        判断选项:
        -f判断是否为普通文件
        -d判断是否为目录文件
        -L判断是否为连接文件
        -r -w -x判断文件是否具有读写执行权限
        关联选项:
        -o 或
        -a 与
        ! 非
        字符串判断:
            = 等于
           !=不等于
           -z 判断字符串长度是否存在(真)
           -n 存在为假,不存在为真

4、逻辑运算
    与:&&
    或:||
    非:!=
    这个逻辑运算符,前后对接都是单独存在的命令;
    [ $? -eq 0 ]&& exit 0 || exit 1
5、算术运算
    *let 1+1
         let a=1+1
         echo $a
    expr 1*1
        expr 1 * 10
    *$[$1+10]
        a=$[2+3]
        echo $a
    $(($1/$2))
         a=$((3/2))
         echo $a
 +加 -减 *乘 /除 %取余 **次幂

原文地址:https://www.cnblogs.com/hmm01031007/p/11348255.html