能否请您指教,我正在尝试在 shell 命令行上运行“for”循环
for i in `seq 4`; do `wireshark &`; done
由于某种原因,循环没有完成,只有 1 个wireshark 窗口打开您能否提一些建议?
最佳答案
你真的不想放wireshark &
在反引号中。执行循环的 shell 创建一个子 shell 来运行 wireshark,并等待该子 shell 关闭所有打开的文件描述符,这些描述符正在写入标准输出,以便它可以收集写入的数据。 (这就是 bacticks 所做的!)。如果您只想在后台运行wireshark,那么这应该可以:
for ...; do wireshark & done
请注意,反引号是非常古老的语法,而 $()
至少自 90 年代中期以来一直是首选。如果您要使用 seq
你应该把它写成 for i in $(seq 4); do ...
.您正在使用 bash
, 所以你可以做 for((i=0; i <4; i++))
.有很多方法可以进行迭代,但这与您遇到的问题无关。
关于linux - bash - 命令行中的for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64700165/