在perl脚本中输出bash脚本

时间:2012-10-16 14:57:33

标签: perl bash

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

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

我不知道perl,但是根据我在Google上看到的内容,我可以将我的bash脚本嵌入

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

我的bash脚本是get_files.cmd

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

perl电话:

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

bash脚本

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

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

希望这有助于=)