如何在Perl中一个接一个地运行两个命令

ojsjcaue  于 10个月前  发布在  Perl
关注(0)|答案(2)|浏览(85)

我试图用sudo运行2个perl命令-就像dzdo一样,但不知何故,我无法实现这个结果。谁能帮我一下。
这是我所要求的样品。我有两个脚本,分别名为/home/user1/script1.pl/home/user1/script2.pl
在这里,我有一个条件,一旦第一个脚本成功执行,就运行第二个脚本。所以我尝试使用以下方法,但仍然失败。

cmd="dzdo -iHu admin /home/user1/script1.pl && dzdo -iHu admin /home/user1/script2.pl";
cmd="dzdo -iHu admin "/home/user1/script1.pl" ; "/home/user1/script2.pl"";
cmd="dzdo -iHu admin /home/user1/script1.pl" && "dzdo -iHu admin /home/user1/script2.pl";
cmd="dzdo -iHu admin "/home/user1/script1.pl ; /home/user1/script2.pl"";
cmd="$cmd1 && $cmd2";
cmd="${cmd1} && ${cmd2}";

的一个或多个字符串
我得到的错误是“未知选项:ihu”中的一个。我甚至尝试了许多组合,但最终以同样的错误。我想我漏掉了一些基本的声明。如果我提到的东西如下,它运行的是第二个脚本,但不是第一个。

cmd1="dzdo -iHu admin /home/user1/script1.pl";
cmd2="dzdo -iHu admin /home/user1/script2.pl";


如果我在perl脚本之外手动运行脚本,则两个脚本都按预期运行。

user1@123abc.dev.com > dzdo -iHu admin /home/user1/script1.pl ; dzdo -iHu admin /home/user1/script2.pl

bksxznpy

bksxznpy1#

首先,我不熟悉dzdo,也找不到它的文档。
我得到的错误是“未知选项:伊胡
如果它与sudo的选项相同,则-ihu没有多大意义。-iHu,你说你正在使用,会更有意义。
如果这不是问题所在,这部分我帮不上什么忙。请参阅其文档。(man dzdo?你可以尝试分别传递它们(-i -H -u)。
我尝试用sudo运行2个perl命令-类似于dzdo
如果它像sudo,它需要一个程序和参数传递给程序。
因此,您可以使用以下方法实现您想要的内容(一旦解决了选项的问题):

dzdo -iHu admin /usr/bin/sh -c '/home/user1/script1.pl && /home/user1/script2.pl'

字符串

1rhkuytd

1rhkuytd2#

我将这两个脚本分别命名为CMD1和CMD2,并在声明CMD1和CMD2之后执行这两个脚本。

CMD1="dzdo -iHu admin /home/user1/script1.pl"; 
$CMD1
CMD2="dzdo -iHu admin /home/user1/script2.pl"; 
$CMD2

字符串

相关问题