【发布时间】:2015-07-30 18:56:12
【问题描述】:
我有一个 shell 脚本,其中编写了两个子例程,它们接受参数,按摩该参数,然后提供新值作为输出。
这个脚本被许多其他的 shell 脚本使用。现在我有一个 Perl 脚本,我想用参数调用这些 shell 子例程。以下是我的代码:
#! /bin/sh
extract_data()
{
arg1 = $1
// massage data code
output=massaged data
return 0
}
Perl 脚本:
my $output = `source /path/my_shell-script.sh; extract_data arg1`;
所以在这里我想将 shell 子程序的输出变量的值分配给 Perl 脚本的输出变量。但我发现只有当我在 shell 子例程中回显该输出变量时它才可用,如下所示。
#! /bin/sh
extract_data()
{
arg1 = $1
// massage data code
output=massaged data
echo $output
}
我不想回显输出变量,因为它是敏感数据并且会暴露在其他 shell 脚本的日志中。
请指教。
【问题讨论】: