Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在perl命令中导入unix变量。。?_Bash_Perl_Unix - Fatal编程技术网

Bash 如何在perl命令中导入unix变量。。?

Bash 如何在perl命令中导入unix变量。。?,bash,perl,unix,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变量 在这个线程上,直接通过环境访问变量,这似乎是一种更简洁的方式 尽管如此,为了演示一种使用直接shell替换的方法,这种方法有它的用途,那么正确的方法是这样的: perl -e '$a

我正在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变量

在这个线程上,直接通过环境访问变量,这似乎是一种更简洁的方式

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

perl -e '$age='"$x"'; print "Age = $age\n"'
perl将其视为输入:perl-e$age=12;打印年龄=$Age\n 在这个线程上,直接通过环境访问变量,这似乎是一种更简洁的方式

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

perl -e '$age='"$x"'; print "Age = $age\n"'
perl将其视为输入:perl-e$age=12;打印年龄=$Age\n 首先,您必须在shell中导出x。然后您可以从Perl以$ENV{x}的形式访问变量

首先,您必须在shell中导出x。然后您可以从Perl以$ENV{x}的形式访问变量


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


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

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


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

或者,您可以使用临时赋值x=12 perl-e'$age=$ENV{x};打印年龄=$Age\n'。回答不错++。在我的替代程序中确认,您可以使用临时赋值x=12 perl-e'$age=$ENV{x};打印年龄=$Age\n'。回答不错++。我已经承认了我的选择