bash for循环不按预期工作

时间:2013-07-31 02:46:53

标签: bash

我有六个使用mininet创建的openvswitch。我想使用一个非常简单的bash脚本转储流表。由于某种原因,这似乎不起作用。

for i in `sudo ovs-vsctl list-br` ; do {`sudo ovs-ofctl dump-flows $i`}  ; done

给出输出

{NXST_FLOW: command not found
{NXST_FLOW: command not found
{NXST_FLOW: command not found
{NXST_FLOW: command not found
{NXST_FLOW: command not found
{NXST_FLOW: command not found

但是,如果我这样做

for i in `sudo ovs-vsctl list-br` ; do echo $i  ; done

我得到以下输出。

S1 S2 S3 S4 S5 S6

顺便说一下我能做到

sudo ovs-ofctl dump-flows s1

并获得正确的信息。

我的bash脚本有什么问题。?

3 个答案:

答案 0 :(得分:4)

为什么要使用反引号?只是做

for i in `sudo ovs-vsctl list-br` ; do sudo ovs-ofctl dump-flows $i ; done

答案 1 :(得分:0)

尝试:

for sudo ovs-vsctl list-br;做sudo ovs-ofctl dump-flows $ i;完成

答案 2 :(得分:0)

您一次使用command substitutioncommand grouping

你告诉bash运行命令(反引号),然后将输出视为另一个命令来运行。