如何防止 bash 脚本中的“source”传递脚本的参数?

如何防止 bash 脚本中的“source”传递脚本的参数?

这些问题涉及以下功能source执行 Bash 脚本与获取该脚本有什么区别? “源”起什么作用?

但我很困惑为什么调用source脚本会传递脚本的参数。例如,我有以下 2 个脚本:

调用者脚本

source sourced.sh
source sourced.sh ""

来源文件

echo [$*]

当我做

./caller.sh arg1 arg2

我明白了

[arg1 arg2]
[]

尽管我没有指定,“arg1 arg2”也会传递给 sourced.sh source sourced.sh $*

为什么?

我发现附加“”会阻止传递参数。这是阻止传递参数的推荐方法吗?

答案1

source允许您在当前上下文(论点$*上下文的一部分)。

第二次source调用会覆盖这些参数。请注意,它只会在调用时覆盖这些参数,调用后会立即恢复这些参数。

相关内容