我有一个 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 没有被添加。谁能告诉我我做错了什么?
我有一个 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 没有被添加。谁能告诉我我做错了什么?
您正在创建一个 shell,执行一个在 shell 中设置环境变量的 shell 命令,然后退出 shell 而不对环境变量做任何事情。你从未改变过perl
的环境。那将使用
local $ENV{PATH} = "$ENV{PATH}:/usr/local/jdk/bin";
不过,添加到路径的末尾有点奇怪。
请注意,ikegami 的答案只会在您的本地 Perl 脚本中设置路径,并且不会为调用您的 Perl 脚本的 shell 更改它。
如果您希望更改 shell 环境中的路径,那么您运行的下一个程序也将从此更改中受益,您将必须使用“源”或“点空间”序列,或者更好 - 将此更改为在“ .bashrc ”或“ .login ”文件中完成的路径。