当我在另一个脚本中调用脚本时,我给第一个脚本的参数会自动传播到第二个脚本。
a.sh:
echo "a running"
source b.sh blablabla
source b.sh
b.sh:
echo "b running"
echo $1
给出了:
$source a.sh hello
a running
b running
blablabla
b running
hello
编辑:
set ""
echo "a running"
source b.sh blablabla
source b.sh
可以是解决方案,因为set“”将第一个参数设置为空字符串
答案 0 :(得分:4)
使用source
时,正在读取和执行b.sh中的所有内容,就像它是a.sh的一部分一样 - 因此它可以访问传递给a.sh的位置参数。你想在这里完成什么 - 实际上是否有必要使用source
?您可以通过运行脚本而不是源代码来避免此行为:
./b.sh
或者:
bash b.sh