我在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变量..!?
答案 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
并按照另一个答案的说明导出变量。