0

我想在 perl 脚本中嵌入一个 bash 脚本。我想通过从 perl 脚本中获取一些变量来运行我的 bash 脚本。一旦获得变量,bash 脚本就会接管并尝试输出在其中创建的文件。

如何将 perl 脚本变量传递给我的 bash 脚本?

我不知道 perl,但根据我在 Google 中阅读的内容,我可以将我的 bash 脚本嵌入为

system("get_files.cmd -yr ${year}");

我的 bash 脚本在哪里get_files.cmd

4

2 回答 2

0

Expect 模块本质上可以自动执行 shell 任务,例如运行脚本和传递 perl 变量。这样:

Use Expect;

  # create an Expect object by spawning another process
  my $exp = Expect->spawn($command, @params)
    or die "Cannot spawn $command: $!\n";

http://search.cpan.org/~rgiersig/Expect-1.15/Expect.pod

于 2012-10-16T15:04:32.607 回答
0

我认为如果您将它们作为参数传递给您的 bash 脚本可能会更好。

perl 调用:

system("get_files.cmd ${var1} ${var2}");

bash 脚本

var1="$1"
var2="$2"
...

其中$1,$2是命令行中传递的参数(按顺序)。请注意,您可以使用$#bash 变量来获取传递的参数数量。

希望这会有所帮助=)

于 2012-10-16T15:07:02.970 回答