登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 849|回复: 0

运维看家本事之一:Shell脚本编程与正则表达式

[复制链接]

216

主题

1

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2017-12-4 02:02:51 | 显示全部楼层 |阅读模式 来自 澳大利亚
ku0A08A7Da0YM3A9.jpg 最新:达内新课程“网络运维”免费火热预约中,点击文末“阅读原文”快速免费抢听新课! j6UCTGz1K0RUzETb.jpg
一、bash特性之多下令实行的逻辑关系
    1.下令更换
           COMMAND1 $(COMMAND2)


    2.管道
           COMMAND1 | COMMAND2 | COMMAND3


    3.次序实行布局
           COMMAND1 ; COMMAND2 ; COMMAND3


    4.选择实行布局:
            假如...要么...
            要么...要么...
            逻辑运算:
                与:逻辑乘,&&,双目操纵符(对两个逻辑值举行操纵)
                或:逻辑加,||
            非:逻辑取反,!,单目操纵


            下令的实行状态返回值:
                SUCCESS:0
                FAILURE:1~255


            COMMAND1 && COMMAND2 
                "与"运算的短路运算法则,只要第一个操纵数为false,则其逻辑运算效果肯定为false
                表现假如COMMAND1可以或许乐成实行,那么将会实行COMMAND2,假如失败则不实行


            COMMAND1 || COMMAND2
                "或"运算的短路运算法则,只要一个操纵数为true,则其逻辑运算效果肯定为true
                    只有COMMAND1实行失败,那么将会实行COMMAND2


            !COMMAND1


                运算优先级:!>&&>||


二、bash脚本编程:
    高级语言:
        按照源代码处置惩罚方式分类:
            编译型语言
                源代码 → 编译器(编译) → [链接器(做链接)] →汇编器(汇编) → 可以实行的二进制代码文件
            表明型语言
                源代码 → 表明器(逐行表明) → 边表明边实行


        根据编程过程中的功能实现是调用库照旧调用外部步伐来分类
            完备编程语言
                使用编程库大概组件举行编程
            脚本编程语言
                使用表明器调用被选择的应用步伐


        根据步伐的编写规范分类:
            过程式语言
                步伐=指令+数据
                以指令为中央,围绕指令的功能实现计划数据和数据布局,数据为指令服务
                算法和指令的实现情势:
                    次序实行
                    选择实行
                    循环实行
            面向对象语言
                步伐=算法+数据布局
                    以数据和数据布局为中央,将数据实例化,围绕数据的需求来摆设算法
                        类:被实例化的数据
                        属性:同一类中的差别对象的区分依据
                        方法:类的精确操纵方法


    低级语言:汇编语言
    呆板语言:二进制语言


    shell脚本编程——bash脚本编程:
        过程式编程语言,表明运行的编程语言,脚本类语言(依赖外部应用步伐文件运行)


    shell脚本是什么?
        1.纯文本文档——文件中全部存储或包罗的指令+数据都是以字符为单元举行存储的
        2.根据用户的需求来办理用户题目的简朴或复杂的下令组合体
        3.是一种具有实行幂等性的步伐实体
            实行幂等性:任何下令的一次实行效果和多次实行效果是同等的
            许多的下令都不具备实行幂等性,因此在shell脚本中必要利用大量的步伐逻辑来判定某个下令是否符合其运行条件,从而制止在运行过程中出现的大量严峻错误



    shell脚本中的代码内容怎样誊写?
        1.首行必须是shebang,即:表明器步伐的绝对路径,必须占据绝对行首且必须单独占据第一行;在实行脚本时,会根据sheban的指示,启动相应的表明器以表明脚本诸多的下令:
            #!/bin/bash
            #!/bin/sh
            #!/user/bin/python


        2.在shell脚本中,除了shebang之外,全部行首为#字符的行,均被表明为解释行;
            即:表明器只会表明其内容,但并不予以实行


        3.表明器会忽略脚本文件中全部的空缺行,空缺行指的是:在一行文本中,除了空缺字符,空格字符,制表符之外不具备其他任何范例字符的行:


        4.大量的下令和关键字
            下令:内部或外部应用步伐
            关键字:内置于shell,只能在某种特定布局体中实行的下令:keyword
                好比if,else,then,do,while等等


        5.shell中的全部的特别功能字符;
            质疑:全部被编写进shell脚本文档的字符必须是ASCII编码格式的字符,其他编码格式的字符可以出如今shell脚本中,但不具有任何特别意义



        6.怎样编写shell脚本?
            可以使用全部的文本文档编辑工具举行shell脚本编写,如:nano,vi,vim,pico,emacs
            通常在linux的各发行版本中,保举利用vim




    脚本文件的定名方式
        一样平常环境下会为脚本设置".sh"的后缀;较低版本的编辑工具会根据文件的后缀名称来辨认是否为shell脚本文件;较高版本的文本编辑工具,如vim7,无需过多的关心文件后缀名的题目


    脚本的运行方式:
        1.为脚本文件赋予实行权限,可以直接以绝对路径或相对路径的方式运行此文件:
            # chmod +x /PATH/TO/SOME_SCRIPT_FILE
            # /PATH/TO/SOME_SCRIPT_FILE
            留意:假如脚本文件地点目次路径储存于PATH变量中,则直接以脚本文件名来实行即可


        2.直接利用表明器运行脚本,将脚本文件作为表明器步伐的参数
            # bash /PATH/TO/SOME_SCRIPT_FILE
                -x  使bash在表明脚本的过程展示在尺度输出上;一样平常用于为shell脚本排错
                -n  对脚本文件举行预实行,以分析脚本中是否存在与语法类错误;假如没有错误,则不输出任何信息;相反,则输出简便的提示信息;详细的错误定位必要本身判定
                留意:此种方式中,脚本文件是否有实行权限并不是很紧张的属性


        留意:以上两种方式,在实行脚本时,会在当前shell中开启一个新的子shell以运行脚本;一样平常环境下,当脚本运行竣事,该子shell也会被随之烧毁;因此,全部在脚本中界说的变量,在脚本的末端处,最好将其明白的打消


        3.利用source下令运行脚本;
            # source /PATH/TO/SOME_SCRIPT_FILE
            # . /PATH/TO/SOME_SCRIPT_FILE
            留意:

                1.source下令不会再运行脚本时开启子shell,而是在当前shell中运行;
                2.利用source下令运行脚本


    使用bash脚本步伐实现算数运算
        常用的根本算数运算符:
            +,-,*,/,%,**


        加强型算术运算符:
            +=,-=,*=,/=,%=


        特别的加强型算数运算符:
            ++,--


    算数运算方法:
        1.$[expression]
            此中的表达式可以是纯数字构成,也可以利用变量引用变量值;在利用变量时,可以将$省略
                示例:

                    #echo $[3+4]
                    #NUM1=5;NUM2=4;echo[NUM1*NUM2]


        2.let VAR=EXPRESSION
            根据算数表达式完成算术运算并赋值给指定的变量


        3.$((EXPRESSION))


        4.expr ARGUMENT1 ARGUMET2 ARGUMENT3
            此中ARRGU1和ARGU3必须是整数数值;ARGU2是算数运算符;


        5.echo "EXPRESSION" | bc



        6.bc




上一篇:尚观shell视频教程
下一篇:【连载】嵌入式Linux开辟教程:Linux Shell
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-16 08:28 , Processed in 0.096450 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表