我理解shell变量是当前shell的本地变量,而环境变量(exported 变量)传递给shell分叉的子进程.
当我在双引号内运行Perl单行程序时,我可以从forked perl进程访问(本地)shell变量:
$ FOO=bar
$ perl -we "print qx'echo $FOO'"
bar
Run Code Online (Sandbox Code Playgroud)
这是为什么?
这是因为双引号字符串中的shell变量插值.
该$FOO变量在父shell中进行评估 - 其中$FOO包含值bar- 并插入到带引号的字符串中.
因此,您实际运行的perl代码是:
print qx'echo bar'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
196 次 |
| 最近记录: |