繁体   English   中英

如何生成 shell 脚本并使用在生成的 shell 脚本中定义的 shell 变量?

[英]How to generate a shell script & use shell variable defined in generated shell script?

我有一个 shell 脚本,它生成并运行 shell 脚本。 我需要获取运行生成的脚本后设置的变量。 testVar 脚本:

#!/bin/bash

echo "#!/bin/bash" > testGen
echo "somePid='12345' # this is actually set by a program" >> testGen
echo "echo \"somePid set to: \${somePid}\"" >> testGen

/bin/bash ./testGen  # execute the generated script

echo "somePid after exec: ${somePid}" # how to get the ${somePid}?

我怎样才能得到 ${somePid}? 预期 output:

$ ./testVar
somePid set to: 12345
somePid after exec: 12345
  1. 首先,您可以将进程 ID 存储在文件中,在 Linux 中,将 pid 存储到 PIDFILE(file.pid)是非常流行的想法。 许多 linux 进程都会这样做,将它们的 pidfile 存储在 /var/run 或 /tmp 中。 然后你可以使用 cat 命令从文件中读取 pid

  2. 您可以使用“。”运行其他脚本。 或“源”命令 - 在这种情况下,其他脚本将在同一个 shell 进程中执行,其他脚本设置的任何变量将在完成后可用

例如,您可以将 PID 存储在文件中

# This is in your testVar
echo 'echo $somePid >somePid' >> testGen

运行程序后,您可以从那里检索它:

./testVar
echo "somePid after exec: $(<somePid)"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM