变量和export
2018-08-21 本文已影响26人
一个废人
我们可以用以下方式设置一下变量:
userdeMacBook-Pro:~ user$ testNum=123123
userdeMacBook-Pro:~ user$ echo $testNum
//得到123123
但是如果此时我们新开另一个子shell程序,却会发现testNum无值。
userdeMacBook-Pro:~ user$ bash
bash-3.2$ echo $testNum
// 无值
如果运用export 来使变量变成环境变量,就可以在子shell程序获得变量值了。
bash-3.2$ exit
userdeMacBook-Pro:~ user$ export testNum
userdeMacBook-Pro:~ user$ bash
bash-3.2$ echo $testNum
//得到123123
什么是『子程序』呢?就是说,在我目前这个 shell 的情况下,去启用另一个新的 shell ,新的那个 shell 就是子程序啦!在一般的状态下,父程序的自定义变量是无法在子程序内使用的。但是透过 export 将变量变成环境变量后,就能够在子程序底下应用了!
综上:
若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量: 『export PATH』
补充
变量的使用
$ uname -r
// 16.7.0
$ cd /lib/modules/$(uname -r)/kernel
//等于cd /lib/modules/16.7.0/kernel
单双引号的区别
[dmtsai@study ~]$ myname="$name its me" [dmtsai@study ~]$ echo $myname
VBird its me
[dmtsai@study ~]$ myname='$name its me' [dmtsai@study ~]$ echo $myname
$name its me
单引号与双引号的最大不同在于双引号仍然可以保有变量的内容,但单引号内仅能是一般字符 ,而不会有 特殊符号。