执行脚本的方式有什么区别呢?
# ./test
并且
# . ./test
测试是一个简单的脚本示例。
#!/bin/bash
export OWNER_NAME="ANGEL 12"
export ALIAS="angelique"
我知道结果,但不确定实际发生了什么。
谢谢。
执行脚本的方式有什么区别呢?
# ./test
并且
# . ./test
测试是一个简单的脚本示例。
#!/bin/bash
export OWNER_NAME="ANGEL 12"
export ALIAS="angelique"
我知道结果,但不确定实际发生了什么。
谢谢。
./foo
执行的是可执行文件 foo
,如果它被标记为可执行文件并且有适当的 shebang 行(或者是 ELF 二进制文件),它将在一个新的进程中执行。
. ./foo
或者 . foo
将脚本加载到当前 shell 中。它等同于 source foo
。
对于你的示例代码,如果你想让导出的变量在你的 shell 中可用,你需要使用第二种方法。
仅使用点号时,bash会“源”指定的文件。这相当于使用source
内置命令,并尝试在同一shell进程中包含和执行脚本。
./
启动一个新进程,当前shell进程等待它终止。
#
作为注释并忽略其后的所有内容!除了文件开头的#!
。 - Tomas