如何在Perl中执行许多(~15)bash命令?

时间:2012-11-01 13:50:58

标签: perl bash

我知道system()qx(),但我需要执行~15 bash命令。 E.g。

mkdirchownedquota -p user1 -u user2cp -rsu - usernamegitrmln -s

问题

是否有一种在Perl中执行许多Bash命令的有效方法?

在这种情况下我不关心输出。

4 个答案:

答案 0 :(得分:3)

首先,我会尽可能多地使用相同的Perl函数来执行这些bash命令,这是您在帖子中包含的大部分内容。然后,对于其余的,我要么使用system()或qx()或反引号,要么使用其中一个IPC ::模块(例如IPC :: Run或IPC :: Open3)。

答案 1 :(得分:1)

对许多命令使用bash语法。将它们与;&&或您喜欢的任何内容(man bash)分开。

$ perl -E 'system qq{date; date}'

答案 2 :(得分:1)

在Linux中,我喜欢POE框架的POE::Wheel::Run模块,用于异步运行系统命令(和代码块)。你说你不关心输出,但如果你将来需要它POE :: Wheel :: Run有一个优雅的界面,允许我们与进程交互。

答案 3 :(得分:1)

my $s = <<END;
echo "1"
echo "2"

echo "3"
END

system("$s");