[英]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
首先,您可以将进程 ID 存储在文件中,在 Linux 中,将 pid 存储到 PIDFILE(file.pid)是非常流行的想法。 许多 linux 进程都会这样做,将它们的 pidfile 存储在 /var/run 或 /tmp 中。 然后你可以使用 cat 命令从文件中读取 pid
您可以使用“。”运行其他脚本。 或“源”命令 - 在这种情况下,其他脚本将在同一个 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.