如何将变量从 perl 脚本导出到 shell 脚本?

use*_*033 3 perl shell-script environment-variables variable

我有一个 shell 脚本,我在其中通过以下代码运行 perl 脚本。

perl perlscript.pl
Run Code Online (Sandbox Code Playgroud)

在 perl 脚本中,我定义了一个名为$circle. 现在我想在我的 shell 脚本中使用这个变量值。我怎么打电话?

cas*_*cas 5

如果您的perl脚本除了 $circle 的值之外没有其他输出,您可以使用命令替换将该输出存储在一个变量中。例如:

circle=$(perl perlscript.pl)
Run Code Online (Sandbox Code Playgroud)

如果perl脚本也生成其他输出(或根本不输出),则您必须:

  1. 只提取您使用常用的文本处理工具的输出(所需的值sedawkperlgrep,等)。这是一个非常简单的例子:

    circle=$(perl perlscript.pl | sed -e 's/junk.i.dont.want//')

  2. 使用间接方法,例如让perl脚本将 $circle 的值写入文件(例如/path/to/circle),以便您的 shell 读取它(例如circle=$(cat /path/to/circle)

注意:如果没有您提供更多详细信息,就不可能提供比这样的一般性建议更多的内容。