变量

变量的作用:

为灵活管理Linux系统提供特定参数,有两层意思:

        变量名:使用固定的名称,由系统预设或用户定义

        变量值:能够根据用户设置、系统环境的变化而变化

变量的类型

      自定义变量:由用户自己定义、修改和使用

      环境变量:由系统维护,用于设置工作环境

      位置变量:通过命令行给脚本程序传递参数

      预定义变量:Bash中内置的一类变量,不能直接修改

按变量使用的范围

      局部变量:只在当前的shell中有效

      全局变量:shell会从父shell继承的变量

查看所有变量:

定义新的变量:

  变量名要求以英文字母或下划线开头,不能以数字开头,区分大小写,约定俗成为大写,但不强制;等号两边不要空格。

      格式:变量名=变量值

查看变量的值 : 格式:  echo  $变量名   (引用变量)

自定义变量:

如果变量名容易和后边的字目和下划线连在一起导致混淆,则应该使用大括号将变量名括起来  

       ${变量名}

可以将命令的执行结果直接赋值给变量       

 var2=$( rpm -qf $(which fdisk) )

  readonly可将变量设置为只读,变量一旦设置为只读,任何用户不能对此变量进行重新赋值

             variable=value  //先对一个变量进行赋值

             readonly variable  //variable设为只读

利用unset命令可以清除变量的值 格式:unset  变量名

bash shell 在解释命令前替换某些命令行元字符

  统配符替换:  *     ?    [a-z]

  历史命令替换:  !! !n!str

  代字号替换: ~~用户名

  变量替换: $变量名${变量名}

  大括号替换:{a,b,c}file{aa,bb}/{aa,bb}

  算术替换:+-*

  

引用和转义字符

  使用特殊字符时,就是表示本身,不使用其特殊意义

   避免下一个字符被shell解释

    $()  `` 的作用一样;但是$()可以嵌套;

    反引号 ``命令替换,提取命令执行后的输出结果

单引号、双引号、反引号的区别

  shell替换发生在命令运行之前

单引号: 避免单引号内的任何字符被shell解释    

str='this is a string'

单引号字符串的限制:

  单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

  单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

  双引号:避免双引号内除$!`(反引号)以外的其它字符被shell解释

    your_name='qinjx'

    str="Hello, I know your are "$your_name"! "

双引号的优点:   

  双引号里可以有变量;;双引号里可以出现转义字符

原文地址:https://www.cnblogs.com/5945yang/p/10837955.html