【发布时间】:2013-08-23 12:51:20
【问题描述】:
我正在开发一个旧的C 软件。有一个ksh 脚本执行C 程序,然后创建一些其他进程并结束。这些进程仍然存在。
我正在尝试在我的 ksh 脚本中设置一个环境变量,以便可以在新创建的仍处于活动状态的进程中访问它。
我试过这种方法:
#!/bin/ksh
VARIABLE=value
export VARIABLE
my_c_program
但这不起作用......我已经尝试过:
- 将我的 ksh 脚本更改为 bash
- 创建一个包装脚本,用于创建和导出变量,然后执行原始 ksh 脚本(它只执行 C 程序)
- 采购我的 ksh 脚本(或尝试使用 2 时的包装脚本)而不是执行 它
但没有任何效果。
目前唯一有效的是当我明确地手动执行命令时:
export VARIABLE
在当前的 bash 终端中。
为什么?难道不能在脚本中进行导出而不是手动进行吗?
【问题讨论】:
-
如何从 C 程序中读取环境变量?
-
使用 getenv("VARIABLE") 它在从当前 bash 显式导出时按我所说的那样工作,在所有其他情况下都不起作用(返回 NULL)。
标签: c bash variables ksh environment