如何在 perl 中依次运行两个命令
2023-07-06
108
我尝试使用
sudo
之类的
dzdo
运行 2 个 perl 命令,但不知何故无法实现结果。有人能帮我吗?
这是我的需求示例。我有 2 个脚本,分别名为
/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 脚本之外手动运行脚本,则两个脚本都会按预期运行。
[email protected] > dzdo -iHu admin /home/user1/script1.pl ; dzdo -iHu admin /home/user1/script2.pl
2个回答
首先,我对
dzdo
不熟悉,也找不到它的文档。
I am getting the error as "Unknown option: ihu"
如果它与
sudo
的选项相同,则
-ihu
没有什么意义。你说你正在使用的
-iHu
更有意义。
如果这不是问题所在,我无法对这一部分提供更多帮助。请参阅其文档。 (
man dzdo
?)您可以尝试单独传递它们(
-i -H -u
)。
I am trying to run 2 perl commands with
sudo
-likedzdo
如果它像
sudo
,它需要一个程序和传递给该程序的参数。
因此,您可以使用以下命令实现您想要的目标(一旦您解决了选项问题):
dzdo -iHu admin /usr/bin/sh -c '/home/user1/script1.pl && /home/user1/script2.pl'
ikegami
2023-07-06
我将两个脚本分为 CMD1 和 CMD2,并在声明 CMD1 和 CMD2 后执行两个脚本。
CMD1="dzdo -iHu admin /home/user1/script1.pl";
$CMD1
CMD2="dzdo -iHu admin /home/user1/script2.pl";
$CMD2
Prakash Somasundaram
2023-07-10