2013-10-07 227 views
0

我很清楚使用'EXPORT'命令在shell脚本之间传递变量。但是我一直坚持将一个perl脚本中的变量值传递给UNIX操作系统中的shell脚本在Unix中将变量从perl脚本传递到shell脚本

让我解释清楚。

我有一个名为parent_shell.sh的父shell。在这个shell脚本中,我使用了一个名为'file_name'的变量,我应该从perl脚本中获取这个变量。

所以我parent_shell.sh脚本里面它会像如下,

perl my_perl_script.pl 

file_name = 'variable' #from perl above perl script 

希望这是显而易见的。请让我知道,如果它不明确。

感谢

+0

很明显。这对于s​​hell脚本来说也是不可能的。 –

回答

0

修改全球%ENV哈希在Perl相当于外壳出口变量。

但是,在任何语言的环境中输出变量仅影响子进程,句点。您无法以任何方式修改父进程环境。

子脚本只能通过在标准输出和标准错误以及状态上打印返回任何内容,但这是一个数字0-127(嗯,它是一个数字0-255,但shell只能可靠地处理值多达127)。

如果您只是需要从perl脚本一个值,只需从shell打印的价值和使用过程中替换:

file_name=$(perl my_perl_script.pl) 

如果是更多,你可以打印一个shell代码设置的变量和使用shell的eval,但确保在从perl打印之前正确引用值。

+0

谢谢你的答案。让我按你的建议去做,回到你身边。 – Mari