shell编程原理

编程原理:
1、编程结束
    驱动   硬件默认是不能使用的
        CPU控制硬件
        不同的厂家硬件设备之间需要进行指令沟通,就需要驱动程序来进行“翻译”
        编程语言的分类:
            高级语言、超高级语言需要翻译成计算机刻度的语言(二进制指令)
            解释型--逐行翻译,逐行执行 shell
                bash -x filename.sh逐行执行
            编译型--一次编译,全部执行

            程序 = 指令 + 数据
            面向对象--侧重于数据的编程语言
            面向过程--侧重于指令

        编程语言的执行方式:
            1、顺序执行
                第一句
            2、循环执行--for(遍历) while(循环条件) until(和while相反)
            3、选择执行--分支 if case

2、shell脚本语言介绍
      优点:调用os(操作系统)的命令行,来实现所有功能
      缺点:没有库调用(区分python)

      shell脚本包括:1、命令 2、变量(全局变量、本地变量、传参)
              3、逻辑关系

      shell的第一句话(必须写)
        #!/bin/bash--定义脚本解释器
        #!/usr/bin/python

        /etc/shells--查看当前系统支持的shell程序
        echo $SHELL --查看当前会话的shell程序
        /etc/passwd--制定了用户默认支持的shell程序(/sbin/nologin)

        shell的执行:
          1、bash 命令来执行脚本
              -n 查看shell脚本的逻辑错误(注意:单词写错可不管)
              -x 逐行显示执行的脚本程序(方便排错)
          2、授权chmod +x filename.sh
              使用全路径执行脚本,即可

3、变量
    环境变量 env和set可看
    局部变量 declare命令--定义变量类型
    本地变量 local在函数中的使用

    变量类型:
        数值型:
          1.整型 int
          2.浮点型 float
          3.布尔值 0 1(真假)(True False)
        字符串:
          1.普通字符及字符串
          2.数组

        编程语言的分类:
            强类型语言 -- 数值必须被定义,才能进行处理或运算
            弱类型语言 -- 编程语言可以自动识别变量类型
        【多态 一个数据具有多个属性,而最后使用的属性取决于和它进行运算的数据】
        传参
            $?--上一条命令的执行状态 0正确 1-255错误
            $1
            $2
            ...
            ${10} $1-${10}--命令后面传入脚本的数据,一空格为分隔符
            $#-- 统计传参数量 ${$#}
            $*-- 表示所有的传参,所有的传参以字符串的形式进行输出
            $@-- 表示所有的传参,将所有的传参以列表的形式进行输出

          定义变量格式:
            NAME=VALUE(一个等号叫赋值,两个等号叫判断)
            通过命令declare定义变量类型
            declare -i a=10 整数 int() str()
            declare -a 数组

          变量命令:
            1.下划线的方式指定变量名称
            2.驼峰命名方式

4、test文件测试、条件判断
      在脚本中,我们需要进行语句分支;说白了,就是要做判断
      判断就是使用test命令来实现;
      使用格式:
          1、test[option] file
          2、[条件语句]
      常见的test选项:
          比较选项:
            -eq 等于
            -ne 不等于
            -gt 大于
            -ge 大于等于
            -lt 小于
            -le 小于等于
          判断选项:
            -f是否为普通文件
            -e文件是否存在
            -d是否目录文件
            -L是否链接文件
            -r -w -x是否具有。。。权限
          关联选项:
            -o或
            -a与
            ! 非
5、逻辑运算
    与 &&
    或 ||
    非 !=

    这个逻辑运算符,前后对接的都是单独存在的命令
6、算术运算
    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/wangzijie123456/p/11360533.html