linux - bash - 命令行中的for循环

标签 linux bash ubuntu

能否请您指教,我正在尝试在 shell 命令行上运行“for”循环

for i in `seq 4`; do `wireshark &`; done
由于某种原因,循环没有完成,只有 1 个wireshark 窗口打开
您能否提一些建议?
enter image description here

最佳答案

你真的不想放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/

相关文章:

linux - 如何处理Linux socket revents POLLERR、POLLHUP 和POLLNVAL?

linux - 如何使用 mpack 发送正文消息?

arrays - grep输出到数组

python - Crontab 停止 - Ubuntu 服务器的管道损坏

python - 在 Windows 中创建的 Parquet 文件无法在 Ubuntu 中打开

linux - 终端给出前缀 : To-be-filled-by-O-E-M

linux - 有没有办法在 ansible 的条件过滤器中使用 if..else 逻辑?

c++ - 在 C++ 中使用寄存器变量可以做多少坏事

linux - 如何使用 bash 垂直组织变量中的单词?

bash - 从后面 awk 一个巨大的日志文件直到时间戳