运维入门之bash shell脚本二(构建基本脚本)

这里仅记录一下易忘且相对较重要的知识点

一、环境变量

       可以直接在环境变量前加上美元符($)来使用这些环境变量

          运维入门之bash shell脚本二(构建基本脚本)

         linux默认的umask值决定了新文件的默认权限设置,由于umask被设置成了022,所以创建的文件只有文件属主和属组才有读写权限,执行脚本之前要给文件加上执行权限chmod

         

 二、用户变量

        shell脚本允许在脚本中定义和使用自己的变量,定义变量允许临时存储数据并在整个脚本中使用。

        用户变量区分大小写,可以是任何由字母数字下划线组成的文本字符串,长度不超过20个,赋值时等号两边不要出现空格。

          运维入门之bash shell脚本二(构建基本脚本)

          运维入门之bash shell脚本二(构建基本脚本)

$printenv HOME  

$env  HOME

$set  

env 和 printenv不会对显示的变量进行排序,也不会输出局部变量和用户定义变量,set命令会显示出全局变量、局部变量以及用户定义变量,并按照字母顺序对结果进行排序。 

export  局部变量名  

将局部变量设置为全局变量(即在子进程创建的进程中也可见)

 

删除用户变量 :(在子shell中删除全局环境变量之后,该环境变量在父shell依然可用)

      unset  变量名 

数组变量:

         环境变量可以作为数组使用,多个值可以单独引用,也可以作为整个数组来引用

         运维入门之bash shell脚本二(构建基本脚本)

         运维入门之bash shell脚本二(构建基本脚本)

三、命令替换

      有两种方法可以将命令输出赋给变量:

           1.  反引号 ( ` )              #反引号在键盘上与波浪线处同一位置

           2.   $( )格式

例:   test=`  date `    或  $( date )

        运维入门之bash shell脚本二(构建基本脚本)

        运维入门之bash shell脚本二(构建基本脚本)

四、输入输出重定向、管道

     >

    >>

    <

    << 

     |

 五、数学表达式

        在bash中,再将一个数学运算结果赋给某个变量时,可以用美元符和方括号( $[ operation  ] )将数学表达式围起来

    运维入门之bash shell脚本二(构建基本脚本)

    运维入门之bash shell脚本二(构建基本脚本)

    但是bash shell数学符运算只支持整数运算(使用内建的bash计算器bc解决此问题)

运维入门之bash shell脚本二(构建基本脚本)

    scale变量控制计算结果保留的小数位数,默认为0

     运维入门之bash shell脚本二(构建基本脚本)

    在脚本中使用bc格式

    variable=$(echo " options; expression " | bc)

      运维入门之bash shell脚本二(构建基本脚本)

     运维入门之bash shell脚本二(构建基本脚本)

     浮点运算是由内建变量scale控制的,必须将这个值设置为你希望在计算结果中保留的小数位数,否则无法得到预期的结果。scale的默认值是0,在scale被设置为4之后,bash计算器显示的结果包含四位小数。        

bc计算器能够使用内联输入重定向,允许你直接在命令行中重定向数据,

         variable=$( bc <<  EOF

          options

          statement

          expressions

          EOF

          )

运维入门之bash shell脚本二(构建基本脚本)

运维入门之bash shell脚本二(构建基本脚本)

 

 六、退出状态码

状态码

描述

0

命令成功结束

2

不适合的shell命令

126

命令不可执行(无权限)

127

没找到命令

128

无效的退出参数

128+x

 与linxu信号x相关的严重错误

130

通过ctrl+c终止的命令

255

正常范围之外的退出状态码

 运维入门之bash shell脚本二(构建基本脚本)

运维入门之bash shell脚本二(构建基本脚本)