QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 919|回复: 4

请问:有关脚本执行的问题

[复制链接]
发表于 2005-7-17 20:15:42 | 显示全部楼层 |阅读模式
有一个脚本HELLO,要执行这个脚本
请问下面语句有什么区别
.HELLO

./HELLO

. HELLO

. ./HELLO
发表于 2005-7-17 21:55:59 | 显示全部楼层
.HELLO是当前路径下的隐藏文件HELLO。
./HELLO表示当前路径下的HELLO文件,如果是可执行的话,就是你问题的正解。
. HELLO如果是在脚本中出现,表示将该文件的内容作为脚本的一部分载入。
. ./HELLO基本上同上,不过是明确指明路径的。
不知道说得对不对?不过无所谓了,反正那个zhy版主会来纠正的。
回复

使用道具 举报

发表于 2005-7-18 09:44:42 | 显示全部楼层
说的不错:)
在linux中 . 表示当前目录,..表示上一级目录,这个是基本的概念。
理解了这个后上面那些就容易理解了,还有就是以.开头的文件等同于windows下 的隐藏文件,也就是你ls时看不到,比如你执行ls和ls -a看看有什么不同,然后就是执行脚本时可以用几种不同方法(首先确定脚本为可执行,ls时为绿色,如果不是可执行,需要[code:1]chmod +x script[/code:1]使脚本可执行):

./script 表示在当前shell的子shell中执行script脚本
. ./script = source ./script 这两个效果相同,表示新打开一个shell执行script脚本
exec ./script 表示新打开一个shell执行script脚本,执行结束退出。
然后你可以比较你的那些了
回复

使用道具 举报

 楼主| 发表于 2005-7-20 21:21:43 | 显示全部楼层
十分感谢大哥,不过我还是希望斑竹从变量的角度(环境变量等)来举例说明一下
./HELLO和. ./HELLO的执行区别
尤其是脚本中用到EXPORT
如:export a="mm"

haiyo
回复

使用道具 举报

 楼主| 发表于 2005-7-20 21:29:00 | 显示全部楼层
而且我记得. ./source
的执行会影响到用户的环境变量的,是吗
而./source当退出子shell后所有的变量都释放了,不会影响到用户变量的是吗?

如果是这样的话,那么在source的脚本中有何必加入EXPORT a=
"mm"呢,反正. ./source能够把子shell执行脚本中的变量"a"送到用户环境中(即在$提示符中输入"echo $a"能够看到"mm"值)
??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-18 09:42 , Processed in 0.039588 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表