shell脚本学习二(构建基本脚本)

shell脚本学习二(构建基本脚本)

Scroll Down

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

一、环境变量
       可以直接在环境变量前加上美元符($)来使用这些环境变量
 shell
        
    linux默认的umask值决定了新文件的默认权限设置,由于umask被设置成了022,所以创建的文件只有文件属主和属组才有读写权限,执行脚本之前要给文件加上执行权限chmod

二、用户变量
        shell脚本允许在脚本中定义和使用自己的变量,定义变量允许临时存储数据并在整个脚本中使用。
        用户变量区分大小写,可以是任何由字母数字下划线组成的文本字符串,长度不超过20个,赋值时等号两边不要出现空格。
        shell
shell
    $printenv HOME  
    $env  HOME
    $set 
    env 和 printenv不会对显示的变量进行排序,也不会输出局部变量和用户定义变量,set命令会显示出全局变量、局部变量以及用户定义变量,并按照字母顺序对结果进行排序。 

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

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

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

三、命令替换
      有两种方法可以将命令输出赋给变量:
           1.  反引号 ( ` )              #反引号在键盘上与波浪线处同一位置
           2.   $( )格式
例:   test=  date    或  $( date )
    shell   
shell

        

四、输入输出重定向、管道
     >
    >>
    <
    << 
     |
 

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

shell

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

shell
    scale变量控制计算结果保留的小数位数,默认为0
   
shell
    在脚本中使用bc格式
    variable=$(echo " options; expression " | bc)
shell

shell

     浮点运算是由内建变量scale控制的,必须将这个值设置为你希望在计算结果中保留的小数位数,否则无法得到预期的结果。scale的默认值是0,在scale被设置为4之后,bash计算器显示的结果包含四位小数。        
bc计算器能够使用内联输入重定向,允许你直接在命令行中重定向数据,
         variable=$( bc <<  EOF
          options
          statement
          expressions
          EOF
          )
shell

shell

 六、退出状态码
状态码             描述
  0             命令成功结束
  2           不适合的shell命令
 126         命令不可执行(无权限)
 127             没找到命令
 128           无效的退出参数
 128+x      与linxu信号x相关的严重错误
 130           通过ctrl+c终止的命令
 255         正常范围之外的退出状态码
 
shell

shell