8

我有一个 bluehost 服务器设置,并试图在我的 perl 程序中设置路径

 print "Content-type: text/html\n\n";
    my $output=`export PATH=\${PATH}:/usr/local/jdk/bin`;
    my output1=`echo \$PATH`;
    print $output1;

但是它仍然只打印原始的 $PATH。/usr/local/jdk 没有被添加。谁能告诉我我做错了什么?

4

2 回答 2

13

您正在创建一个 shell,执行一个在 shell 中设置环境变量的 shell 命令,然后退出 shell 而不对环境变量做任何事情。你从未改变过perl的环境。那将使用

local $ENV{PATH} = "$ENV{PATH}:/usr/local/jdk/bin";

不过,添加到路径的末尾有点奇怪。

于 2012-06-17T05:33:04.343 回答
3

请注意,ikegami 的答案只会在您的本地 Perl 脚本中设置路径,并且不会为调用您的 Perl 脚本的 shell 更改它。

如果您希望更改 shell 环境中的路径,那么您运行的下一个程序也将从此更改中受益,您将必须使用“”或“点空间”序列,或者更好 - 将此更改为在“ .bashrc ”或“ .login ”文件中完成的路径。

于 2012-06-17T22:33:19.697 回答