一个问题 - 在某些情况下,我看到这样的命令行
。 ./test.sh
我很好奇为什么要用“.”在“./test.sh”之前什么条件我们必须使用“.”在命令之前?
答案1
跑步. ./test.sh
与跑步类似source ./test.sh
。它没有将文件test.sh
作为可执行文件运行。相反,它会在当前 shell 中逐行运行其内容。例如,它也可以修改您当前的环境。
答案2
跑步. ./test.sh
是一样的source ./test.sh
。它在当前 shell 而不是子 shell 中运行脚本(即它不会分叉)。这可能会更改调用脚本中同名的变量,并且会保留在./test.sh
调用脚本中调用后定义和可见的变量和函数。