从 Perl 脚本在命令行上运行需要密码的程序



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

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 脚本,这意味着用户必须多次重新输入其密码。

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

Perl 内置了mkdirchdir,File::Copy 提供了一个复制例程。 使用它们通常比掏钱更安全、更快捷。 虽然它不会为你翻译~。 File::chdir 使更改目录和运行命令更安全一些。

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

相关内容

  • 没有找到相关文章

最新更新