Bash Shell把任何存储在变量中的值,不论该变量是整数变量、浮点变量、字符变量,都视为以字符组成的“字符串”。
设定变量值后,该变量值只在当前的Shell环境中有效,例如变量I是在当前Shell中设定的,当另外开启一个新Shell后,I的变量值是空值。这说明,每一个Shell‘环境都会维护一份它们自己的变量空间,彼此互不影响。
注意,在设定变量的时候 ,等号的两边不能人空白。
错误设定变量:
I = 我; //等号两边有空格
正确设定变量:
I=我;
另外,若等号右边的值含有空白, 要用引号括起来。
WE=“我 和 你”
取得变量值的方法:
(1)、 $变量名
(2)、 ${变量名}
两种方法等价。但是第二种方法在显示多个变量时能够将多个变量分隔开来,从而避免出错。
除了内置echo显示变量内容之外,Bash还提供一个和C语言很像的printf命令,其基本用法如下:
M=me;
printf "%s" "$M"
注意,使用printf时,最好 把变量用双引号含括。
取消变量的方法:
使用unset.
用法如下:unset 变量名称
unset不加任何选项,则会尝试取消变量,如取消失败,会再试着取消与该变量同名的函数名。
unset -v 变量名称 // -v 选项表示要取消的是变量
unset -f 函数名称 // -f 选项表示要取消的是函数
单引号和双引号区别:
在双引号中可以以下三个操作:
- 替换变量
- 替换命令执行结果
- 替换算术运算结果
单引号的作用是形成一个所见即所得的字符串(即写什么就显示什么),不会进行任何替换变量的操作,这是和双引号的区别。
例如, M=me;echo "$M" 执行结果:me
echo '$M' 执行结果:$M
使用/进行转义,可以抑制在双引号中替换变量。
例如:echo /$M 或 echo “/$M” 执行结果都是:$M // /抑制了$替换变量的作用