请问:有关脚本执行的问题
有一个脚本HELLO,要执行这个脚本请问下面语句有什么区别
.HELLO
./HELLO
. HELLO
. ./HELLO .HELLO是当前路径下的隐藏文件HELLO。
./HELLO表示当前路径下的HELLO文件,如果是可执行的话,就是你问题的正解。
. HELLO如果是在脚本中出现,表示将该文件的内容作为脚本的一部分载入。
. ./HELLO基本上同上,不过是明确指明路径的。
不知道说得对不对?不过无所谓了,反正那个zhy版主会来纠正的。 :mrgreen: 说的不错:)
在linux中 . 表示当前目录,..表示上一级目录,这个是基本的概念。
理解了这个后上面那些就容易理解了,还有就是以.开头的文件等同于windows下 的隐藏文件,也就是你ls时看不到,比如你执行ls和ls -a看看有什么不同,然后就是执行脚本时可以用几种不同方法(首先确定脚本为可执行,ls时为绿色,如果不是可执行,需要chmod +x script使脚本可执行):
./script 表示在当前shell的子shell中执行script脚本
. ./script = source ./script 这两个效果相同,表示新打开一个shell执行script脚本
exec ./script 表示新打开一个shell执行script脚本,执行结束退出。
然后你可以比较你的那些了 :-D 十分感谢大哥,不过我还是希望斑竹从变量的角度(环境变量等)来举例说明一下
./HELLO和. ./HELLO的执行区别
尤其是脚本中用到EXPORT
如:export a="mm"
haiyo 而且我记得. ./source
的执行会影响到用户的环境变量的,是吗
而./source当退出子shell后所有的变量都释放了,不会影响到用户变量的是吗?
如果是这样的话,那么在source的脚本中有何必加入EXPORT a=
"mm"呢,反正. ./source能够把子shell执行脚本中的变量"a"送到用户环境中(即在$提示符中输入"echo $a"能够看到"mm"值)
??
页:
[1]