LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 894|回复: 3

ABSG里面关于source或.命令的解释

[复制链接]
发表于 2009-12-14 15:51:49 | 显示全部楼层 |阅读模式
里面说这个命令相当于include,可以引入另一个文件里面的函数或数据。
但是后面又强调说如果这个脚本本身如果可以执行的话,那么会去执行里面的命令,
这里不是很理解,是不是说被引入的文件里面就不能包含可以执行的语句,比如命令什么的,
如果有的话就会执行?
发表于 2009-12-14 20:22:44 | 显示全部楼层
试了一下 感觉都是include进去了
lx@LxUbuntu:~/bash/lx/f28$ bash tmp
1
tmp
2
tmp
lx@LxUbuntu:~/bash/lx/f28$ cat 1
#!/bin/bash
echo "1"
echo "$0"
lx@LxUbuntu:~/bash/lx/f28$ cat 2
#!/bin/bash
echo "2"
echo "$0"
lx@LxUbuntu:~/bash/lx/f28$ cat tmp
#!/bin/bash
. ./1
. ./2


1有x权限
回复 支持 反对

使用道具 举报

发表于 2009-12-15 15:56:30 | 显示全部楼层
我的解释是:你的书写得有问题。

这个命令跟 include 肯定是不一样的,它永远会试图执行这个脚本。唯一区别只是执行的时候是在脚本自身环境中执行,而不是开一个子环境执行。

如果带了参数,则使用所带的参数,如果没有带参数,则使用父脚本的参数。
$0永远是父脚本的。
回复 支持 反对

使用道具 举报

发表于 2009-12-16 09:40:15 | 显示全部楼层
如果带了参数,则使用所带的参数,如果没有带参数,则使用父脚本的参数

果然如此, 受教了
回复 支持 反对

使用道具 举报

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

本版积分规则

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