使用help perl脚本设置shell变量

时间:2016-06-12 20:47:09

标签: perl shell

我试图在perl脚本的帮助下设置shell变量名。

但它运行不顺利。

system("variable_name=\"variable_value\"");
`variable_name=\"variable_value\"`;

任何人都告诉我它为什么不起作用。

其实我的问题有点不同。 我想知道如何在perl脚本的帮助下设置环境“setenv”。 我试过了 $ENV{"VARIABLE_NAME"} = "home\/path_1\/path_2\/path_3";

然后我发出命令echo $ VARIABLE_NAME然后它没有给我从perl脚本设置的路径。

由于

2 个答案:

答案 0 :(得分:3)

您无需运行新shell来设置环境变量;实际上,这样做会适得其反,因为该值并不比分配它的shell更长(除非通过该shell的任何幸存的子代可能继承了该值)。

您可以直接在perl中设置环境变量:

$ENV{"variable_name"} = "variable_value"

从perl脚本开始的任何后续shell都会看到这一点。

答案 1 :(得分:1)

它正在运作。问题是下一个system命令运行一个新的shell,它不知道第一个shell中设置的变量。

system 'x=value; echo $x'; # Outputs "value".
system 'echo $x';          # Empty line - the shell with $x doesn't exist anymore.