source /some/script
和. /some/script
执行脚本(例如/ some / script)有什么区别?#1 楼
source
和.
在Bash中是同义词。对于任何想验证命令只是同义词而已的人,请查看源代码,例如版本4.3,然后检查文件
builtins/source.def
。您将了解到,两个内置命令source
和.
都使用相同的功能:source_builtin
。 #2 楼
.
在bash中与source
是同义词,但在POSIX sh中不是,因此,如果脚本由/ bin / sh运行,则应使用.
。请注意,bash称为/ bin / sh时声称运行类似于POSIX sh,但接受source
却没有任何抱怨。 这种行为使我很痛苦,例如,在ash下运行时,用bash测试的脚本/ bin / sh失败。
评论
POSIX不限制外壳。 POSIX只是说;外壳应至少支持此功能。因此,只要实现了POSIX所描述的功能,POSIX外壳程序就可以自由地实现其他功能。当shebang说出#!/ bin / sh时,您不应假定外壳支持POSIX功能以外的任何功能。 pubs.opengroup.org/onlinepubs/9699919799/utilities/…
– Geirha
2011年2月9日在23:51
您可能会受到名称查找顺序的影响:unix.stackexchange.com/q/17815/8250
– Lekensteyn
12年7月16日在11:05
这个答案对我有所帮助,因为sh经常在cron中使用。
– dfrankow
13年8月8日在14:25
评论
这个在哪里定义?我的意思是。源的别名,还是其他呢?
– binW
2011年2月9日在18:26
完全一样的东西
–user8290
2011年2月9日在18:42
@binW:。是传统的源代码命令,继承自古老的伯恩贝壳。 source只是一个与.b完全相同的bash内置函数,大概是因为它更具可读性(仅使用。字体很难发现。)。您会看到帮助源和帮助。显示相同的信息。
– Geirha
2011-2-9 23:56
@binW:如果您查看man bash并搜索源,则会看到源文件名[arguments]是的同义词。文件名[参数]。
–马修·兰金(Matthew Rankin)
2011-2-17在12:22