0

シェル スクリプトの周りに 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";
.
.

これらのシェル スクリプトの 1 つでは、スクリプトのユーザーがパスワードを入力する必要があります。つまり、メッセージが stdout に出力され、パスワードがシェル経由で受け入れられます。プロセス全体でこのシェル スクリプトが何度も呼び出されるため、ユーザーはパスワードを何度も再入力する必要があります。

コマンドライン自体でユーザーにパスワードを要求し、ユーザーに何度もパスワードを要求する代わりにそのパスワードを暗黙的に渡す方法はありますか?

4

1 に答える 1

4

Perl には組み込まれており、mkdirFile ::Copyはコピー ルーチンを提供します。一般的には、砲撃するよりもそれらを使用する方が安全で高速です。それはあなたのために翻訳されませんが。 File::chdirを使用すると、ディレクトリの変更とコマンドの実行が少し安全になります。chdir~

残りについては、完全なIPC::Runを使用してプログラムとの対話を制御し、Term::ReadLine::Gnuを使用してパスワードを表示せずに読み取ります。申し訳ありませんが、これは単なるスケッチであり、完全な回答ではありません。

于 2012-10-11T10:24:10.987 に答える