Linux中”点+XX“命令模式的作用说明

      由于工作需要,刚开始接触Linux(Fedora14)下的大型工程文件编译。顶层文件路径中有一个主编译文件,以及一个环境变量设置脚本。运行主Makefile时,会提示需要先运行脚本以导入需要的环境变量。但是运行了脚本后还是报相同的问题,用export查看后发现需要的环境变量根本没导入进去。查阅网上的资料后发现原来导入命令符用错了,Mark一下。顺便把相关的命令符都梳理一下。

1. 基本表示:直接一个斜杠(/)表示根目录,点+斜杠(./)表示当前目录(即相对路径)。

2. 使用点+斜杠(./)执行脚本是启动了另一个Shell去执行脚本(另一个进程),所以用点斜杠执行脚本时,设置的环境变量会随着进程的退出而结束,其中的环境变量设置对当前Shell不起作用。

*3. 点空格点斜杠(. ./)执行脚本,相当于source ./,即加了空格之后,第一个点就相当于source命令。用source执行的脚本所做的改变会影响当前shell,所以其中的环境变量的设置会对当前Shell起作用。(好像也可以直接使用“点+空格+文件名”方式执行脚本且影响全局,说明此种情况下后面的./可以简化省略)

    编辑脚本tesh.sh导入环境变量Hello=“Hello World”,以下是两种命令的效果。

[root@localhost mytest]# ./test.sh。
[root@localhost mytest]# echo $Hello

[root@localhost mytest]# . ./test.sh
[root@localhost mytest]# echo $Hello
Hello world
[root@localhost mytest]# 

    可以看出只有“. ./”这种模式命令才能在执行之后返回变量值,“./”模式在脚本运行结束(进程退出)后即失去作用。

 

参考链接:

在Linux中点斜杠执和点空格点斜杠执行脚本之间的区别

shell中 source命令即点空格后面再跟可执行文件的说明

百度知道 

posted on 2014-03-21 16:27  superfox  阅读(559)  评论(0)    收藏  举报

导航