J. *_*Doe 6 bash scripts language environment-variables perl
我在 bash 脚本中有变量,我需要将它们转移到 perl 脚本中。我在 bash 脚本中声明了变量 $gal 和 $obsid,然后我调用了新程序。
gal=UCLA121
obsid=1896
./my_program
Run Code Online (Sandbox Code Playgroud)
perl 脚本的开头加载带有短语的图像
$ph_im = "./$gal/img/${obsid}.img";
Run Code Online (Sandbox Code Playgroud)
但是新程序中的变量为NULL。
Ser*_*nyy 19
可以通过导出变量来使 shell 脚本中的子进程可以使用变量
export foo=bar
Run Code Online (Sandbox Code Playgroud)
或者通过调用带有变量的程序
foo=bar ./my_prog.pl
Run Code Online (Sandbox Code Playgroud)
无论哪种情况,您都需要ENV在 perl 脚本中调用它们
my $barfoo = $ENV{'foo'};
Run Code Online (Sandbox Code Playgroud)
gle*_*man 10
使用环境是一种更清洁的方式。
还有的-s开关:
$ cat vars.pl
#!perl
use feature 'say';
say "foo=$foo";
say "bar=$bar";
$ echo "$foo,$bar"
123,456
$ perl -s ./vars.pl -foo="$foo" -bar="$bar"
foo=123
bar=456
Run Code Online (Sandbox Code Playgroud)