我想在 perl 脚本中嵌入一个 bash 脚本。我想通过从 perl 脚本中获取一些变量来运行我的 bash 脚本。一旦获得变量,bash 脚本就会接管并尝试输出在其中创建的文件。
如何将 perl 脚本变量传递给我的 bash 脚本?
我不知道 perl,但根据我在 Google 中阅读的内容,我可以将我的 bash 脚本嵌入为
system("get_files.cmd -yr ${year}");
我的 bash 脚本在哪里get_files.cmd
。
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";
我认为如果您将它们作为参数传递给您的 bash 脚本可能会更好。
perl 调用:
system("get_files.cmd ${var1} ${var2}");
bash 脚本
var1="$1"
var2="$2"
...
其中$1
,$2
是命令行中传递的参数(按顺序)。请注意,您可以使用$#
bash 变量来获取传递的参数数量。
希望这会有所帮助=)