zoukankan      html  css  js  c++  java
  • shell脚本----编程原理

     1、编程介绍:

          计算机只能识别二进制指令。

          程序=指令+数据

          早期编程:

                  驱动:

    硬件默认是不能使用的;

                      CPU控制硬件。

                      作用:提供不同的厂家硬件设备之间需要进行指令沟通,我们需要驱动程序来进行“翻译”;

                 低级语言:“汇编语言”

                 更趋近于硬件开发的工程师要学习“汇编语言”;而“汇编语言”被厂家所限制;

                 C语言,C++的底层就是汇编语言;

                 操作系统用来分配硬件资源

          现在编程:基于高级语言,以及超高级语言,更好的让程序员能够实现编程功能。

          编程的分类:

                 高级语言、超高级语言需要翻译成计算机可读的语言(二进制指令)

                 解释型语言 ---- 逐行翻译,逐行执行   shell,Python,Java

                           bash –x filename.sh

                 编译型语言 --- 一次编译,全部执行   大多是C语言,C++,C#,Java

                        Java既是解释型也是编译型

                 程序 = 指令 + 数据

                 面向对象 --- 侧重于数据的编程语言   Java里一切皆对象

                 面向过程 --- 侧重于指令

          编程语言的执行方式:

                 要求:以行方式【一行一行】

    1、 顺序执行

    2、 循环执行

    常用for(遍历),while(循环条件),until(和while相反)

    3、 选择执行 -- 分支

    if,重点case

    2、shell脚本语言介绍

           1、逻辑关系

           2、变量

           3、判断

       优点:调用os(操作系统)的命令行,来实现所有功能;

       缺点:没有库调用(区分)Python

       shell脚本包括:

    1、 命令(非常重要)

    2、 变量(全局变量,局部变量,本地变量,传参)

       shell的第一句话(必须写)

            #!/bin/bash -- 定义脚本解释器(普遍认为#为注释行,这里特殊)shebang

            #!/usr/bin/python – Python解释器

           

            /etc/shells – 查看当前系统支持的shell程序

            echo $SHELL – 查看当前会话的shell程序

            /etc/passwd – 制定了用户默认支持的shell程序(/sbin/nologin)

          

           shell 的执行:

               1、bash命令来执行脚本

                       -n 查看shell脚本的逻辑错误(注意:单词写错不管)

                       -x 逐行显示执行的脚本程序(方便排错)

                       

                        

                        

    2、授权chmod  u+x filename.sh

                 使用全路径执行脚本,即可

    3、变量

    环境变量

    局部变量 declare 命令 -- 定义变量类型

    本地变量 local 在函数中使用

    变量类型:

          数值型:

    1、 整形 int

    2、 浮点型 float

    3、 布尔值 0 1(假 真)(True False)

          字符串:

    1、 普通字符及字符串

    2、 数组

               编程语言的分类:

                      强类型语言 – 数值必须被定义,才能进行处理或运算

                      弱类型语言 – 编程语言可以自动识别变量类型

                      【多态】

    一个数据有多个属性,而最后使用的属性取决于和它进行运算的数据。

             

    传参

                  $?  --  上一条命令的执行状态0正确 1-255错误

                  $1  --  $2…${10}  --  命令后面传入脚本的数据,以空格为分隔符

                  $#  --  统计传参数量${$#}

                  $*  --  表示所有的传参,所有的传参以字符串形式进行输出

                  $@  --  表示所有的传参,将所有的传参以列表形式进行输出

                  【工作中要对所有的参数进行操作的时候,就要考虑$*和$@】

                    

                     

             

    定义变量格式:

                  NAME=YALUE  (一个等号叫赋值,两个等号叫判断,相当于-eq)

                  我们通过命令declare定义变量类型

                  declare -i 整数 int()  str()

                  declare -a 数组

            变量命令:

    1、 下划线的方式指定变量名称

    2、 驼峰命名方式

    4、test文件测试、条件判断

            test命令[里面必须有空格]

    在脚本中,我们需要进行语句分支 就是做判断

    判断就是使用test命令来实现

    使用格式:

    1、test[option] file

    2、[条件语句]

    常见的test选项:

                      比较选项:

                          -eq 等于  数值用这个判断等于不等于

                          -ne 不等于

                          -gt 大于

                          -ge 大于等于

                          -lt 小于

                          -le 小于等于

                     判断选项:

                          -e 判断文件是否存在

    -f 判断是否为普通文件

                          -d 判断是否为目录文件

                          -L 判断是否为链接文件

                          -r -w –x 判断文件是否具有 读 写 执行的权限

                     关联选项:

                          -o 或

                          -a 与

                          ! 非

                    字符串判断:

                          = 等于为真  字符串用这个判断是否相等

                                

                           != 不等于

                         -z 判断字符串长度是否为0   0就是假(判断是否存在)

                         -n 和-z相反 存在为假 不存在为真

    5、逻辑运算

           与   &&  与运算 两边都真才是真,一边为假也是假

           或   ||   或运算 一边为真就是真,两边都假才是假

           非   !    非运算 真换假,假换真

           示例:ls /var && exit0 || exit 1

           这个逻辑运算符,前后对接的都是单独存在的命令;

           [ $? –eq 0 ]&& exit 0 || exit 1

    6、算术运算

    重点:let   1+1

           expr  1*1

           重点:$[]  $[1+10]

           $(())   $(($1/$2))

           算数运算符:

  • 相关阅读:
    delphi JPG图片 旋转 切边 缩放
    CXGrid TcxButtonEdit 信息获取 TcxButtonEditProperties取得TcxGridDBTableView
    firemonkey EDit 改变颜色
    firemonkey ListView DynamicAppearance
    delphi GDI 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法
    cxGrid_Q31584 cxgrid 拖放移动记录
    delphi XE Datasnap SERVER 在windows 7 下为服务添加描述信息
    delphi 数组复制利用CopyMemory 最为完美
    delphi强制WebBrowser控件使用指定版本显示网页
    iOS从零开始学习直播之音频2.后台播放和在线播放
  • 原文地址:https://www.cnblogs.com/zqntx/p/11352474.html
Copyright © 2011-2022 走看看