Perl:导入shell变量
在shell中,我获得了Perl:导入shell变量,perl,shell,environment-variables,csh,Perl,Shell,Environment Variables,Csh,在shell中,我获得了.cshrc文件,该文件包含一些已定义的变量,如用户名 我需要将这些变量传递给某个Perl脚本 例如在shell终端中,我键入了 >echo$user 输出为esaad> 然后在Perl中,为了读取$user变量,我尝试: system(“echo$user”) 还尝试了以下命令: my$userName=system(echo$ENV{user}) 但是Perl要求将$user初始化为Perl变量,而不是Shell变量 我如何读取这个变量 您可以: print $ENV
.cshrc
文件,该文件包含一些已定义的变量,如用户名
我需要将这些变量传递给某个Perl脚本
例如在shell终端中,我键入了
>echo$user
输出为esaad>
然后在Perl中,为了读取$user
变量,我尝试:
system(“echo$user”)
还尝试了以下命令:
my$userName=system(
echo$ENV{user}
)代码>
但是Perl要求将$user
初始化为Perl变量,而不是Shell变量
我如何读取这个变量 您可以:
print $ENV{'user'}
您的系统调用不起作用的原因是系统打开了一个新的shell,而该shell没有源代码.cshrc
阅读答案了解更多信息您可以:
print $ENV{'user'}
您的系统调用不起作用的原因是系统打开了一个新的shell,而该shell没有源代码.cshrc
阅读答案了解更多信息使用Perl内置系统变量$ENV:
print $ENV{'user'}
或者使用反斜杠转义变量$user。Perl将解释Perl程序中定义的$user变量,而不使用反斜杠。使用反斜杠,“echo$user”作为系统调用传递
system("echo \$user")
使用Perl内置系统变量$ENV:
print $ENV{'user'}
或者使用反斜杠转义变量$user。Perl将解释Perl程序中定义的$user变量,而不使用反斜杠。使用反斜杠,“echo$user”作为系统调用传递
system("echo \$user")
或者,使用单引号:system('echo$user')
或者使用单引号:system('echo$user')
是环境变量还是外壳变量?如果它们是shell变量,您将无法从Perl访问它们。这些变量是环境变量还是shell变量?如果它们是shell变量,您将无法从Perl访问它们。