码迷,mamicode.com
首页 > 系统相关 > 详细

shell 脚本编程

时间:2017-07-04 14:52:29      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:脚本

bash: 弱类型语言

    变量类型:

        环境变量 , 本地变量(局部变量) , 位置变量 , 特殊变量

    

    1. 本地变量 : 只在当前进程中有效,父子 shell 不通用

            声明方法 : Name = value

            引用方法 : $( Name )    括号可以省略

        局部变量 : 作用域为当前代码段

            声明方法 : local Name = value

    2. 环境变量 : 作用域为当前 shell 进程及其子进程

            声明方法 :  Name= value

            引用方法 : export Name    (用户定义变量时,都为本地变量,export 可以将本地变量变成环境变量,从而使子进程可以引用)

    3. 特殊变量 :

            $? : 上一个命令执行状态的返回值

        注: 程序执行后有两种返回值,一种是程序执行的结果,一种是程序状态的返回代码(0-255).

            0 : 正确执行

            1-255 : 错误执行

            1,2,127 : 系统预留

    

    撤销变量: unset Name

    查看环境变量 : env , printenv , export


    脚本:

            命令的堆砌,按照实际需要,结合命令流程机制,实现的源程序.Linux内核只能执行ELF格式的文件,但是我们写的脚本是命令的堆砌,脚本格式属于二进制 ASCII  所以在脚本文件的第一行,我们需要告诉内核,需要调用一个脚本解释器,才能正常执行脚本.

    

    魔数: ( shebang )  #!/bin/bash


    脚本中常见的三种测试:

        1.条件测试

        2.字符测试

        3.文件测试

    

        1.条件测试: 根据命令的返回值来判断命令执行是否成功,再结合逻辑符号来完成条件判断

            1)条件测试的表达式:

            [ expression ] : [ ] 与表达式之间必须有扩号

            [[ expression ]] : [[ ]] 与表达式之间必须有扩号

            test expression


        2.整数测试:

            -eq : equal

            -ne : not equal

            -gt : great then

            -lt : less then

            -ge: great equal

            -le : less equal

            

        3.逻辑关系:

            与 : &&

            或 : ||

            非 : !


            4)单分支的 if 语句

            if 判断条件; then

                statement1

                statement2

                ...

            fi


            5)多分支

            if 判断条件; then

                statement1

                statement2

                ...

            elseif  statement

            fi


            6)算术运算

           Ⅰ  let 算数表达式  例: let c=$a+$b

            Ⅱ $[算术表达式]  例: c= $[$a+$b]

            Ⅲ $((算术表达式)) 例: c= $(($a+$b))

            Ⅳ expr 算数表达式  注意,表达式中各操作数及运算符之间要有空格,而且要使用命令引用 反引号

            例: c = ` expr $a + $b `


        3.文件测试

            -e File : exist  文件是否存在    [ -e File ]  注意: [ ] 同样需要有空格

            -f File : file    是否为普通文件

            -d File : directory     是否是目录文件

            -r File : read    测试当前用户对指定文件是否有读权限

            -w File: write

            -x File: 执行

    

    定义脚本退出状态码: exit  如果没有定义退出状态码,则最后一条命令的退出码,即为脚本的退出状态码

    测试脚本是否有语法错误:

            bash -n file

            bash -x file 单步执行



    位置变量 : 当脚本需要接受外部的参数时使用,$1 为第一个参数 $2 为第二个参数 ......

        在执行脚本时,将变量跟在脚本后,以空格隔开.


    特殊变量:

            $? : 

            $# :参数列表

            $@ : 参数列表

            shift : 轮替,当参数太多是,我们可以用shift来踢出一个或多个参数, shift  | shift  2

            

shell 脚本编程

标签:脚本

原文地址:http://13023726.blog.51cto.com/13013726/1944380

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!