gpt4 book ai didi

java - 在 Posix 中将 Shell 上下文变量传递给编译语言 (Java/C/C++)

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:56 24 4
gpt4 key购买 nike

这是一个非常简单的问题,但我找不到答案。

我正在运行一个 shell 脚本,并且在该 shell 脚本的范围内我定义了一些变量。我想以某种方式从 shell 脚本上下文中运行的程序中访问这些变量。例如,如果我运行一个如下所示的脚本

#!/bin/sh

VARIABLE_NAME="somevalue";
java Main;
./compiled-c-or-cpp.out

如何从 Main 或编译的 C/C++ 中访问 "$VARIABLE_NAME"?老实说,如果这是不可能的,我也不会感到惊讶,但我认为这是一个值得提出的问题。

我认为我不能为此使用环境变量。我知道如何通过 Java 的 System.getEnv("VARIABLE_NAME ") 方法和 C 的 getenv("VARIABLE_NAME") 方法。然而,我最终实现的过程将用于非常的多线程应用程序。我需要能够使用 context 变量,这样我就可以让多个线程同时访问它们自己的 "$VARIABLE_NAME",而不是 export-ing 环境变量到整个 shell。

也就是说,我承认我对环境变量的范围没有完全的了解。例如,如果每次调用 Runtime.getRuntime().exec("./script.sh")(对于 Java)或 system("./script.sh")(对于 C/C++)被分配了它自己的 shell,如果我能够export 环境变量到那个临时 shell,那将是一个可以接受的解决方案。

感谢任何人的帮助:)

最佳答案

您可以将一个环境变量导出到一个进程,而无需在您的 shell 中:

VARIABLE_NAME="somevalue" java Main

在你的情况下,它更可能是这样的

VARIABLE_NAME="somevalue" (java Main; ./compiled-c-or-cpp.out)

关于java - 在 Posix 中将 Shell 上下文变量传递给编译语言 (Java/C/C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34023754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com