0

我已经围绕一个 shell 脚本编写了一个 Perl 包装器。我正在使用 IPC::Run::Simple 来执行系统命令。举个例子:

run ("mkdir ~$usr/12.2.0_cp/faiz_cpv/$pdate") or die "Error $ERR";
run ("cp ~$usr/12.2.0_cp/faiz_cpv/MPlist.lst ~$usr/12.2.0_cp/faiz_cpv/$pdate") || die "Error: $ERR";
run ("cd ~$usr/12.2.0_cp/faiz_cpv/$pdate; sh /opsutils/mfg_top/rel/CPV/bin/list_generation.sh . MPlist.lst mfg_relall_us\@oracle.com") or die "error $ERR";
.
.

这些 shell 脚本之一要求脚本的用户输入他们的密码。也就是说,在标准输出上打印一条消息,并通过 shell 接受密码。在整个过程中会对该 shell 脚本进行多次调用,这意味着用户必须多次重新输入密码。

有没有一种方法可以让我在命令行本身向用户请求密码,并隐式传递该密码,而不是一次又一次地提示用户输入密码?

4

1 回答 1

4

Perl 具有内置的和mkdirFile ::Copy提供了一个复制例程。使用它们通常比炮击更安全、更快。虽然它不会为你翻译。 File::chdir使更改目录和运行命令更加安全。chdir~

其余的,使用完整的IPC::Run来控制与程序的交互,使用Term::ReadLine::Gnu来读取密码而不显示密码。抱歉,这只是一个草图,而不是完整的答案。

于 2012-10-11T10:24:10.987 回答