python结构多个命令

2024-06-25 22:34:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图理解fabric是如何在一台机器上使用多个命令的。 我需要在每台主机(数千台主机)上运行几个命令,并想知道什么是最好的。在

使用多个管路:

res_1 = run(command_1)
res_2 = run(command_2)
...
...
res_n = run(command_n)

或者:

^{pr2}$

我想知道的是fabric如何处理多个运行,它是打开多个会话还是在同一个会话中执行所有命令?在


Tags: run命令机器rescommandfabric管路pr2
2条回答

无论您是使用多个run调用,还是使用&&进行单个run调用,AFAIK,fabric将只打开一个网络连接。两者的区别在于每个新的run在不同的环境中执行。例如,你可以试试这个。在

run('ls')
run('cd /tmp/')
run('ls')

两次它都会显示你的主目录列表。但如果你试试这个

^{pr2}$

它将第一次显示主目录,后面是/tmp/的列表。因此,如果您希望从一个命令保留到另一个命令,您应该执行run('cmd1 && cmd1')操作,但是如果您不介意,则应该使用多个run调用。在

这两种方法之间的重要区别在于,第一种方法将运行所有命令,而不管前一个命令的退出状态如何;然而,第二种方法只在command_2没有返回错误的情况下执行commmand_2,因此这取决于您是否想要这种行为或另一种行为。在

相关问题 更多 >