一、在命令行窗口执行shell脚本时,source .所执行的脚本中,变量的作用域在当前shell窗口期,而bash、sh在shell脚本执行完了就失效了。
dream361@master:~$ cat test.sh
user='pwd' 当前的脚本内容
dream361@master:~$ bash test.sh 用bash执行
dream361@master:~$ echo $user 结果为空
dream361@master:~$ . test.sh 用 source 或 执行
dream361@master:~$ echo $user 结果为pwd
pwd
二、执行一个脚本没有执行权限的脚本
1. 用 bash、sh
2. source 、.
3. chmod u+x test.sh 然后就可以用 绝对路径或相对路径执行此脚本
[root@Mmaster1 ~]# cat testSource.sh 查看此脚本内容
user='last'
[root@Mmaster1 ~]# unset user 清除变量值
[root@Mmaster1 ~]# echo $user 输出为空
[root@Mmaster1 ~]# source testSource.sh 执行赋值操作
[root@Mmaster1 ~]# echo $user 输出变量值为last
last
[root@Mmaster1 ~]# unset user 清除变量值
[root@Mmaster1 ~]# echo $user 输出为空
[root@Mmaster1 ~]#