0

と は知ってsystem()qx()ますが、15 個までの bash コマンドを実行する必要があります。例えば

mkdir, chown, edquota -p user1 -u user2, cp -r, su - username, git, rm_ln -s

質問

Perl で多くの Bash コマンドを実行する効率的な方法はありますか?

この場合、出力については気にしません。

4

4 に答える 4

3

まず、可能な限り多くの bash コマンドに同等の Perl 関数を使用します。これは、投稿に含まれているもののほとんどです。次に、それらの残りの部分については、system() または qx() またはバックティックまたは IPC:: モジュール (IPC::Run または IPC::Open3 など) のいずれかを使用します。

于 2012-11-01T14:06:46.863 に答える
1

多くのコマンドで bash 構文を使用します。;またはまたはで区切り&&ます ( man bash)。

$ perl -E 'system qq{date; date}'
于 2012-11-01T14:03:13.333 に答える
1

Linux では、システム コマンド (およびコード ブロック) を非同期で実行するための POE フレームワークのPOE::Wheel::Runモジュールが気に入っています。あなたは出力を気にしないと言っていますが、将来必要になった場合、POE::Wheel::Run にはプロセスと対話できるエレガントなインターフェイスがあります。

于 2012-11-01T14:04:08.970 に答える
1
my $s = <<END;
echo "1"
echo "2"

echo "3"
END

system("$s");
于 2012-11-01T15:12:56.230 に答える