【发布时间】:2018-12-02 21:48:22
【问题描述】:
我有两个脚本,分别是shell_script.sh 和perl_script.pl。
shell_script.sh : 它具有函数定义,当从 Perl 脚本调用时,将在 Linux 上以批处理模式执行某些命令。
perl_script.pl : 它有要实现的代码和逻辑,要调用的函数等。
shell_script.sh文件内容如下:
#!/bin/bash
# Function Definitions
func_1 ()
{
echo "function definition"
}
func_2 ()
{
echo "function definition"
}
perl_script.pl文件内容如下:
#!/usr/bin/perl
use Getopt::Long;
my $var1;
my $var1;
GetOptions("var1=s" => \$var1,
"var2=s" => \$var2,
"help|?" => \$help );
if ($help)
{
HelpMenu();
}
print " Can I call the func_1 (defined in shell script) with arguments here..?? (in this perl script)";
如何在 perl 脚本perl_script.pl 中调用函数func_1()(在shell_script.sh 中定义)?
【问题讨论】:
-
您希望这些函数(实际上)从/在 Perl 脚本中做什么?将一些值返回给 Perl?还是只是做他们的事?
-
您可能会调用定义和调用函数的脚本,但根据它的作用,最好将其重写为 Perl 函数。
-
您可以从 perl 脚本中调用这样的函数:
system 'bash', '-c', 'source shell_script.sh; func_1'
标签: linux shell perl unix external