linux - 如何从 "parent"bash 文件调用变量?

标签 linux bash shell ftp

我现在的情况是: 我有一个 bash 文件,其中有 3 个变量

ora=$(date +"%H.%M")
curdate="ore_$ora"
slideshow=$(date +"%Y-%m-%d")

这个 bash 文件由 cron 每 5 分钟自动执行一次(在 xx:00 和 xx:05)。 因此,例如,如果脚本在 26-05-2015 的 17:30 运行,我分别有这些输出: 17.30 ; ore_17.30 ; 2015-05-26

但是这个 bash 文件需要 2 分钟(由于一些必要的 sleep 命令)才能运行,并且在这 2 分钟之后将是 17:32。

在一些命令之后和这两分钟之后,在这个 bash 文件中有一个命令运行另一个 bash 文件(称为 sld.sh);在这个 sld.sh 中有一些 FTP 指令,尤其是一个

send "$curdate".jpg

(在此 sld.sh 中再次有 $curdate 变量和 $ora 变量)但现在 $curdate 是“ore_17.32”而不再是“ore_17.30”:我一定希望 $curdate 变量是我的初始父变量 (17.30),那么有没有办法“恢复”sld.sh 文件中的初始 curdate echo?

提前致谢! 贾科莫

最佳答案

您需要export一般而言,您希望在子 shell 和子流程中看到的任何变量。

curdate="ore_$ora"
export curdate

您也可以将其组合成一行。

export curdate="ore_$ora"

关于linux - 如何从 "parent"bash 文件调用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30446786/

相关文章:

linux - 使用 bash 捕获交互式程序的输出和输入

perl - 如何将 $SHELL 变量传递给 perl 搜索和替换

linux - 错误: host for provisioner cannot be empty

linux - 将 I/O 驱动的调度合并到操作系统内核中

c - 如何确保 posix c 套接字仍然有效

macos - readarray 的替代方法,因为它在 mac os x 上不起作用

linux - 了解 ldd 输出 - 符号链接(symbolic link)

bash - 为什么我不能ping AWS服务器而是通过ssh连接?

json - 使用 jq 解析两个列表中存在的键(即使其中一个列表中可能不存在)

sql-server - 如何编写 bash 和 sql 文件来设置 postgres 用户?