一、在命令行窗口执行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 ~]#