shell脚本之变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本之变量相关的知识,希望对你有一定的参考价值。

  常见的shell变量有:自定义变量;环境变量;位置变量,预定义变量等。

  变量:可以存放一个可变值的空间,可以通过不同的环境进行改变,就是一个可以变的值。一般使用echo 输出变量。

  变量格式:echo $变量名 实例如下:

技术分享

通过赋值的方式,省去繁琐的输入路径。这样也可以完美的输出,达到查看网卡的要求。这就是变量的优点。

  echo $? (?来检测命令是否执行成功,)

技术分享

上一条命令输出正确,执行echo $? 则输出零,若不正确,则输出非零的数字

自定义变量:

  自定义变量是用户根据自己的环境,自己定义的变量。

   Bash中比较简单的变量,不用进行提前声明,而是直接指定变量名称并赋给初始值; 

   自定义变量的基本格式为变量名=变量值等号两遍不允许出现空格;  

   变量名称只能以字母和下划线开头名称中不能包含+、- * 、 / . , 、 ? % * ……等一些特殊字符。

  技术分享

  以上就是自定义一个变量,并赋值,自定义变量一定要注意大小写。

  可以直接在命令行定义,以上就是定义一个变量并赋予值,通过echo进行输出变量 $是引用变量的特殊字符(必须使用$符号)。

   echo和调用的变量之间必须要有空格。

   直接使用echo 后面跟$调用的变量 如果有多个则空格隔开

实例2:

   变量赋值:后面赋的新值会直接覆盖前面的赋值。

   技术分享

实例3:

   当变量名和后面的字符容易混淆的时候应该使用{}将变量名括起来。

技术分享

双引号(")

当=号右边赋值出现空格的时候,需要使用双引号将其括起来,

技术分享

 在双引号的范围内还可以引用其他的变量,从而能够将现有的变量赋值给新的变量

技术分享

单引号(‘)

 当要赋值的内容包括"$"、"\"等,具有其他含义的特殊字符时,

 应使用单引号将其括起来。

 在单引号范围内将无法引用其他的值,任何字符均作为普通字符看待,但赋值的内容包含单引号时需  要使用\’符号进行转义以免冲突。

技术分享

反撇号(`)

 在键盘esc的下边的按键。

 反撇号主要使用于命令替换,允许将某个命令的屏幕输出结果赋值给变量。

 反撇号括起来的范围内必须是可执行的命令。否则将会出现错误

技术分享

 反撇号等同于$()

 需要注意的是使用反撇号难以在一条命令中实现嵌套命令的操作,这时可以$()来替代反撇号

 技术分享

 

4)read命令

 除了上面的赋值之外还可以使用read命令进行赋值,read命令用来提示用户输入信息,从而实现简  单的交互式过程(其实我们所输入的命令就是一种交互式的过程)

 执行时需要从标准输入设备键盘读取一行,并以空格为分隔符

 比如我同时定义两个变量操作如下所示

技术分享

 为了交互式更加的形象,提高易用性,加上 -p选项来设置提示信息

技术分享

以上的操作只是在当前的bash环境下生效,到了其他控制台或者是其他shel就不能生效了

我们进入当前shell的子shell。

技术分享

 进入子shell之后在局部定义的变量就不会生效了。只能说明一点,当前bash内不存在输出的变量 

 通过set查看当前的所有变量

 通过env查看全局变量

 exit退出当前的bash回到父bash

 将一个局部变量改变为全局变量

技术分享

 通过export把局部变量改变为全局变量。

 也可以之间定义一个全局变量并赋值

技术分享

需要注意的是变量的名是严格区分大小写的


以上是:自定义变量;环境变量的实验过程。希望能帮到你。

本文出自 “11732822” 博客,请务必保留此出处http://11742822.blog.51cto.com/11732822/1795348

以上是关于shell脚本之变量的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本之变量与状态码

Shell 脚本之规范和变量

Shell 脚本之编程和变量(外加实战项目)

自动化运维必须要学的Shell脚本之——编程规范和变量详细解读

shell脚本之变量

Shell编程之特殊变量(详解)