具有多个参数的命令的Xargs

时间:2014-12-03 08:51:35

标签: linux bash openstack xargs

我被建议使用这些命令获取Openstack中的关闭实例列表,并将它们作为参数发送给start命令:

nova list | grep SHUTOFF | cut '-d|' -f3 | xargs nova start

但它会导致错误:

error: unrecognized arguments: shutdowninstance-2

如果我对Xargs使用其他命令,则列表是正确的:

nova list | grep SHUTOFF | cut '-d|' -f3 | xargs echo
shutdowninstance-1 shutdowninstances-2

所以第一个命令必须正常,问题应该在命令的最后部分。 我想这是因为最后一个命令旁边有参数start。 Nova预期的语法是nova start nameofinstance

我在这里研究了很多关于使用Xargs的其他问题,但是找不到解决方法。

如何更改命令以使其正常工作?

编辑:使用xargs -t提供此输出:

nova start shutdowninstance-1 shutdowninstances-2

所以问题可能是nova start当时只接受一个实例名称。

可以调整给我的命令,以便当时只提供一个参数吗?

1 个答案:

答案 0 :(得分:2)

您可以使用-I的{​​{1}}选项:

xargs

或者你可以循环结果:

nova list | grep SHUTOFF | cut '-d|' -f3 | xargs -I '{}' bash -c 'nova start {}'