我有两个 shell 脚本 test1.sh 和 test2.sh。
在 test1.sh 我有以下语句:
在test1.sh中,我有一个变量I,它的值将被test2.sh使用
#!/bin/sh
I="10"
echo $I
在test2.sh中,将复制和打印相同的变量值
#!/bin/sh
J=$I
echo $J
我需要在 crontab 中运行这两个脚本,我尝试了导出命令,但没有任何效果。
将此添加到您的 crontab :
. ./test1.sh && ./test2.sh;
并像这样修改你的 test1.sh :
#!/bin/sh
export I="10"
echo $I
第一个将.
作为源执行并保存变量。
这两个脚本都在它们自己的 shell 中运行,并且只与它们的父进程共享它们的环境。如果您希望两个单独的 shell 脚本共享环境变量,则必须在调用脚本之前在父进程中设置(并导出)变量。
您还可以创建仅设置变量的第三个脚本,并从两个主要脚本中获取该脚本。
如果你想使用test1.sh
in script的输出test2.sh
,你有两个选择
test1.sh
在文件中并将该文件读回test2.sh
test1.sh
_test2.sh
测试2.sh:
#!/bin/sh
J=$(test1.sh)
echo $J
正如@Joachim Pileborg 已经建议的那样,您可以在一个脚本中设置(但不能回显)变量并在另一个脚本中获取它
测试1.sh
I="10"
J=20
K=30
测试2.sh
source test1.sh
# do something with I, J, K