问题标签 [env]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
7135 浏览

perl - %ENV 不起作用,我无法使用共享库

我不能%ENV在我的 Perl 脚本上使用 var 来使用 Oracle 库。

如果我打印$ENV{'ORACLE_HOME'}并且$ENV{'LD_LIBRARY_PATH'}一切正常,但是当我运行我的脚本时出现错误:

install_driver(Oracle) 失败:无法为模块 DBD::Oracle 加载“/usr/local/lib64/perl5/auto/DBD/Oracle/Oracle.so”:libclntsh.so.10.1:无法打开共享对象文件:否这样的文件或目录在 /usr/lib64/perl5/DynaLoader.pm 第 200 行。在 (eval 3) 第 3 行编译在 (eval 3) 第 3 行的 require 中失败。可能所需的共享库或 dll 没有安装在预期的位置在 persistence.perl 第 22 行

在网上搜索我发现在 Perl 上设置环境变量的正确方法是使用%ENV哈希。

导出ORACLE_HOMELD_LIBRARY_PATH通过 unix shell ( export LD_LIBRARY_PATH=...) 它可以正常工作。有什么建议吗?

0 投票
1 回答
1773 浏览

perl - 将环境变量传递给 fcgi (perl)

我有一个运行 mod_fcgid 的 apache 2 网络服务器。CGI 脚本通过传递一些环境变量然后执行 perl 程序来执行,例如:

这在没有 fcgi 的情况下运行良好,但是在启用它时(例如,通过 .htaccess 中的“SetHandler fcgid-script”),TEST_VAR 没有通过(甚至在第一次运行时也没有)。除此之外,fcgi 似乎确实在工作。

有什么想法或建议的方法吗?出于各种配置原因,我更喜欢如上所述在外部设置环境,但这不是强制性的。

谢谢!

0 投票
1 回答
963 浏览

java - 从 perl 调用 system() 或 IPC::Run3 命令似乎没有传递环境变量 ($ENV{JAVA_HOME})

我一直在努力从 perl 启动一个 java 进程。问题的根源是 java 进程缺少JAVA_HOME导致ClassNotFoundException.

我开始使用IPC::Run3它是因为它相对优雅的 STDIN/STDOUT 重定向。

假设IPC::Run3会使用%ENV,我尝试添加$ENV{JAVA_HOME}.

当那不起作用时,我尝试做system(). 那没有用,所以最后,我让它工作了system("JAVA_HOME=/path/to/java && /path/to/java_program");

我的测试程序如下。自然我会取消注释正确的块来测试适当的调用。

这是运行 run3 的输出:

第一个 system() 调用的输出:

最后,第三个系统调用——唯一有效的!——使用内联设置的环境变量:

最后的问题:除了必须在 system() 调用中设置环境外,将环境变量传递给 IPC::Run3 或 system() 调用的适当方法是什么?

(注意:%ENV 的输出被截断为仅相关的行... PATH、SHELL、_ 等与省略的问题无关的行)

如果它是相关的:

0 投票
3 回答
1306 浏览

php - PHP 使用 $_ENV 而不是 $_SESSION

使用 $_ENV 保存全局脚本变量而不是使用 $_SESSION 有什么危险吗?我了解 2 个超全局变量之间的区别,但不确定在 $_SESSION 上使用 $_ENV 的影响?$_SESSION 是否提供更多安全性?

0 投票
5 回答
37263 浏览

macos - Mac OS:/usr/bin/env:错误的解释器:不允许操作

我正在尝试在 Mac OS 10.7 (Lion) 上运行此脚本,但出现错误:

我已经在我的其他 Mac 上成功运行了这个脚本。它只是从 Daring Fireball 下载并未经修改的这个脚本。

我发现这个人有一个非常相似的问题,但公认的答案是文件系统在挂载时有一个“noexe”选项。我很确定这对我来说不是这种情况,因为我刚刚将它放在 /usr/local/bin/ 中,并且那里的其他东西工作正常(它也不能从其他地方运行或作为其他用户(包括 root)运行) .

这是一个 Perl 脚本而不是编译后的二进制文件,这并不重要。这里有一些关于它的价值的额外信息:

0 投票
3 回答
1077 浏览

python - 为什么使用 env 设置初始环境会阻止我在 Ubuntu 上启动 Python 脚本?

我有一个测试脚本,例如“test.py”,我想让它在脚本开始之前使用特定的环境变量集执行:

运行它通常按预期工作:

但是,如果我将其作为程序运行:

该字符串从不打印,而是执行停止,“top”报告一个名为“test.py”的进程正在使用 100% CPU。

这只发生在我的 Ubuntu 机器上,在 OS X 上似乎没问题。

原因是最终我想通过设置使特定脚本始终在 32 位 Python 中运行:

在文件的顶部。但是,如果这意味着脚本不会在 Linux 机器上执行,那就不行了。我发现无论调用什么指定的环境变量都会产生类似的效果。但是,如果没有设置环境变量:

脚本运行得很好:

这是 Python 或 中的错误env,还是我做错了什么?

0 投票
2 回答
990 浏览

perl - 在 bash 脚本中使用源代码

我已经使用 perlbrew 在 CentOS 5.x 服务器上安装了一些需要 Perl 5.010 的代码,它需要这两行

要在我的 /usr/bin/env 中有 perl 5.010 之前在 shell 中执行,所以我尝试创建以下可执行 bash 脚本以最小化这两个步骤./setEnv.sh

0 投票
3 回答
8056 浏览

shell - 列出busybox中的所有环境变量名

具有多行值的环境变量可能会混淆env的输出:

在这种情况下,我不能只使用awk -F=提取所有名称,因为它显示错误的名称CE

然后我发现env支持标志-0以 0 字节而不是换行符结束每个输出行,因此使用sed我可以切断以下值bash

但是 BusyBox 的版本env 不支持flag -0。还有另一种方法吗?

0 投票
1 回答
557 浏览

emacs - 如何从 eLisp 调用 env 并正确转义目标程序的路径?

我正在尝试做的事情如下:

即我想pj-path在填充了一些变量的环境中调用一个程序。

(format "'%s'" pj-path)我尝试单引号和双引号的行中 - 但env不进行路径扩展,如果它被引用,它将把它当作一个字符串,而不是找到文件。但是,如果它没有被引用,那么它将把直到第一个空格之前的字符串部分解释为程序的路径。

如果我转义空格(如在它们前面加上反斜杠),它似乎可以工作,但可以肯定的是,空格不是唯一会混淆执行命令的 shell 的字符。

那么,在 eLisp 中转义应该传递给 env 的可执行文件名称的正确方法是什么?

0 投票
4 回答
4503 浏览

shell - 未知路径的 Shell 脚本 shebang

是否可以在不知道要执行的程序路径的情况下指定 shebang 行?

也许不指定路径

或指定几个选项

跨平台解决方案的加分项(各种风格的 linux、BSD、OSX 等...)