• Shell(Bash)变量及定义规范

    什么是变量呢?从字面上来看就是可以变的量。举个例子,我们小时候都做过数学的应用题,经常定义 x 的值是某个数,如果换了一道题,还是定义 x 的值,但是 x 的值就不和第一道题相同了,这个 x 就是变量。

    变量是计算机内存的单元,其中存放的值可以改变。当 Shell 脚本需要保存一些信息时,如一个文件名或一个数字,就把它存放在一个变量中。

    每个变量都有一个名字,所以很容易引用它。变量可以定制用户本身的工作环境。使用变量可以保存有用信息,使系统获知用户相关设置。变量也可以用于保存暂时信息。

    那么,应该如何设置变量呢?其实非常简单,命令如下:

    [root@localhost ~]# name=sc
    #定义变量name的值
    [root@localhost ~]# echo $name、
    sc
    #查询变量的值

    在定义变量时,有一些规则需要遵守。

    1) 变量名可以由字母、数字和下画线组成,但是不能以数字开头。如果变量名是"2name",则是错误的。

    2) 在 Bash 中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。比如:

    [root@localhost ~]# aa=1+2
    [root@localhost ~]# echo $aa
    1+2

    看到了吧,变量 aa 的值不是"3",而是"1+2"。在 Bash 中,变量类型是字符串型,所以认为"1+2"只是一个字符串,而不会进数值运算(数值运算方法会在后续章节中介绍)。

    3) 变量用等号"="连接值,"="左右两侧不能有空格。这是 Shell 语言特有的格式要求。在绝大多数的其他语言中,"="左右两侧是可以加入空格的。但是在 Shell 中命令的执行格式是"命令 [选项] [参数]",如果在"="左右两侧加入空格,那么 Linux 会误以为这是系统命令,是会报错的。

    4) 变量值中如果有空格,则需要使用单引号或双引号包含,如 test="hello world!"。双引号括起来的内容"$"和反引号者都拥有特殊含义,而单引号括起来的内容都是普通字符。

    5) 在变量值中,可以使用转义符"\"。

    6) 如果需要増加变量值,那么可以进行变量叠加。 例如:

    [root@localhost ~]#test=123
    [root@localhost ~]#test="$test"
    456
    [root@localhost ~]# echo $test
    123456
    #叠加变量test,变量值变成了123456
    [root@localhost ~]#test=${test}789
    [root@localhost ~]# echo $test
    123456789
    #再叠加变量test,变量值变成了123456789

    变量叠加可以使用两种格式:"$变量名"或 ${变量名}。

    7) 如果要把命令的执行结果作为变量值赋予变量,则需要使用反引号或 $() 包含命令。例如:

    [root@localhost ~]# test=$(date)
    [root@localhost ~]# echo Stest
    2013年10月21日 星期一20:27:50 CST

    8) 环境变量名建议大写,便于区分。

更多...

加载中...