【问题标题】:Pass variable from perl script to shell script in Unix在 Unix 中将变量从 perl 脚本传递到 shell 脚本
【发布时间】:2013-10-07 12:33:47
【问题描述】:

我非常清楚使用“EXPORT”命令在 shell 脚本之间传递变量。但我坚持将变量值从 perl 脚本传递到 UNIX 操作系统中的 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

希望这很清楚。如果不清楚,请告诉我。

谢谢

【问题讨论】:

  • 很清楚。使用 shell 脚本也是不可能的。

标签: perl shell unix


【解决方案1】:

在perl中修改全局%ENV哈希相当于在shell中导出变量。

但是,以任何语言在环境中导出变量只会影响子进程。不能以任何方式修改父进程环境。

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

如果您只需要 perl 脚本中的一个值,只需打印该值并使用 shell 中的进程替换:

file_name=$(perl my_perl_script.pl)

如果更多,您可以打印一个 shell 代码来设置变量并使用 shell 的 eval,但请确保在从 perl 打印之前正确引用这些值。

【讨论】:

  • 感谢 Jan 的回答。让我按照你的建议去做,然后回来找你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-26
  • 2020-10-02
  • 2011-02-03
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多