如何在我的perl命令中导入我的unix变量..?

时间:2017-05-18 05:16:47

标签: bash perl unix

我在Bash提示符下运行命令:

bash-3.2$ x=12
bash-3.2$ echo $x
12
bash-3.2$ perl -e '$age=$x; print "Age = $age\n"'
Age =
bash-3.2$

我没有打印年龄/数字..!如何在我的perl命令中导入我的unix bash变量..!?

3 个答案:

答案 0 :(得分:6)

首先你必须在shell中export x。然后,您可以从Perl访问变量$ENV{x}

$ x=12
$ export x
$ perl -e '$age=$ENV{x}; print "Age = $age\n"'
Age = 12

答案 1 :(得分:1)

此线程上的

This answer直接通过环境访问变量,这似乎是一种更简洁的方式。

尽管如此,为了演示一种使用直接shell替换(有它的用途)的方法,那么正确的方法就是这样:

perl -e '$age='"$x"'; print "Age = $age\n"'
  • perl将此视为输入:perl -e $age=12; print "Age = $age\n"

答案 2 :(得分:0)

-e参数的单引号可防止展开shell变量。使用$ENV{'myvar'}获取shell变量$myvar

的值

并按照另一个答案的说明导出变量。