1

我有两个 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 中运行这两个脚本,我尝试了导出命令,但没有任何效果。

4

3 回答 3

2

将此添加到您的 crontab :

. ./test1.sh && ./test2.sh;

并像这样修改你的 test1.sh :

#!/bin/sh
export I="10"
echo $I

第一个将.作为源执行并保存变量。

于 2013-02-18T11:03:38.497 回答
1

这两个脚本都在它们自己的 shell 中运行,并且只与它们的进程共享它们的环境。如果您希望两个单独的 shell 脚本共享环境变量,则必须在调用脚本之前在父进程中设置(并导出)变量。

您还可以创建仅设置变量的第三个脚本,并从两个主要脚本中获取该脚本。

于 2013-02-18T10:34:24.070 回答
0

如果你想使用test1.shin 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
于 2013-02-18T10:34:36.870 回答