Bash 在shell脚本之间调用和传递变量值

Bash 在shell脚本之间调用和传递变量值,bash,ubuntu,Bash,Ubuntu,我试图让一个shell脚本将变量传递给另一个脚本并执行它。以下是我尝试过的: mainscript.sh OS: Ubuntu 18.04 Bash 订阅1.sh: #!/bin/bash # Master script SUBSCRIPT1_PATH=~/subscript1.sh test_string="The cat ate the canary" (exec "$SUBSCRIPT1_PATH") 但是,当我这样做的时候: #!/bin/bash # subscript1.sh e

我试图让一个shell脚本将变量传递给另一个脚本并执行它。以下是我尝试过的:

mainscript.sh

OS: Ubuntu 18.04
Bash
订阅1.sh:

#!/bin/bash
# Master script
SUBSCRIPT1_PATH=~/subscript1.sh
test_string="The cat ate the canary"
(exec "$SUBSCRIPT1_PATH")
但是,当我这样做的时候:

#!/bin/bash
# subscript1.sh
echo $test_string

我什么也得不到。有什么办法吗

默认情况下,Shell变量在子进程中不可见。要将它们传递给子级,请使用
export
关键字:

bash mainscript.sh

(exec“$subscribpt1\u PATH”)
相当于
“$subscribpt1\u PATH”
顺便说一句,
exec
语句周围不需要括号。请使用
source
命令或
export
#!/bin/bash
# Master script
SUBSCRIPT1_PATH=~/subscript1.sh
export test_string="The cat ate the canary"
(exec "$SUBSCRIPT1_PATH")