在定义变量时,有一些规则需要遵守
2name
则是错误的。[root@localhost ~]# name = cangls -bash: name: command not found
test="hello world!"
。其中双引号括起来的内容$
、\
和反引号都拥有特殊含义,而单引号括起来的内容都是普通字符。"$变量名"
或用${变量名}
包含变量名(就相当于Java中字符串连接)。例如: #叠加变量 test,变量值变成了123456 [root@localhost ~ ] # test=123 [root@localhost ~ ] # test="$test"456 [root@localhost ~ ] # echo $test 123456 #再叠加变量 test,变量值变成了123456789 [root@localhost ~ ] # test=${test}789 [root@localhost ~ ] # echo $test 123456789
总结:变量值的叠加可以使用两种格式:
"$变量名"
或${变量名}
$( )
包含命令。之前说过,例如: [root@localhost ~ ] # test=$(date) [root@localhost ~ ] # echo $test 2018年 10月 21日 星期一 20:27:50 CST
Shell中变量的分类并不是安装变量的类型进行分类的。
说明:环境变量分为两种,一种是允许用户自定义的,还有一种是系统定义好的。用户定义的这种环境变量,对整个操作系统的环境来说作用不是很大,唯一的作用就是,在父子Shell中都生效(这个以后再说)。而系统定义的环境变量,会对我们的操作环境产生一定影响。对系统定义的环境变量,我们不能修改变量的名称和作用,只能修改变量的属性值。系统定义的环境变量主要就是在几个重要的环境变量配置文件中的变量,如
/etc/profile
文件中的变量。
...
提示:环境变量的作用域是整个系统都生效,包括父Shell子Shell。在这种情况下,为了避免和系统命令产生冲突,建议环境变量的名称都是大写(主要是自定义的环境变量,系统定义的环境变量一般都是大写的,也不能改),因为Linux系统中所有的系统命令都是小写(只有大写的命令选项),这样就可以避免混淆了。
说明:预定义变量和位置参数变量一共就几种,需要记住(以后详细讲)。