我试图在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脚本设置的路径。
由于
答案 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.