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

如何在Perl中执行多个(~15)bash命令?,perl,bash,Perl,Bash,我知道system()和qx(),但我需要执行~15个bash命令。例如 mkdir,chown,edquota-p user1-u user2,cp-r,su-username,git,rm,ln-s 问题 有没有一种有效的方法可以在Perl中执行许多Bash命令 在本例中,我不关心输出。对许多命令使用bash语法。用将它们分开或&&或任何你喜欢的(man bash) 对许多命令使用bash语法。用将它们分开或&&或任何你喜欢的(man bash) 在Linux中,我喜欢POE框架中异步运行系

我知道
system()
qx()
,但我需要执行~15个bash命令。例如

mkdir
chown
edquota-p user1-u user2
cp-r
su-username
git
rm
ln-s

问题

有没有一种有效的方法可以在Perl中执行许多Bash命令


在本例中,我不关心输出。

对许多命令使用bash语法。用
将它们分开
&&
或任何你喜欢的(
man bash


对许多命令使用bash语法。用
将它们分开
&&
或任何你喜欢的(
man bash


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

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

首先,我会对尽可能多的bash命令使用等效的Perl函数,这是您在文章中介绍的大多数命令。然后,对于其余的命令,我要么使用system()或qx(),要么使用backticks,要么使用IPC::模块(如IPC::Run或IPC::Open3)。

首先,我将尽可能多地使用等效的Perl函数来处理这些bash命令,这是您在文章中介绍的大多数命令。然后,对于其余的模块,我要么使用system()或qx(),要么使用backticks,要么使用IPC::模块(例如IPC::Run或IPC::Open3)。您可以
setuid
您可以
取消链接
您可以
mkdir
您可以
chown
等,所有这些都直接从perl中执行。在您粘贴的命令中,
edquota
git
可能是唯一最容易通过
system
实现的,即使是git也可以将其放入shell脚本中,并使用
qx
system
执行。另外值得一提的是,您运行的许多命令都不需要
system()
,它们有perl等价物。您可以
setuid
您可以
取消链接
您可以
mkdir
您可以
chown
等,所有这些都直接从perl中执行。在您粘贴的命令中,
edquota
git
可能是最容易通过
system
实现的命令,即使git也有
$ perl -E 'system qq{date; date}'
my $s = <<END;
echo "1"
echo "2"

echo "3"
END

system("$s");