繁体   English   中英

bash - 命令行中的 for 循环

[英]bash - for loop in command line

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

for i in `seq 4`; do `wireshark &`; done

由于某种原因,循环没有完成,只有 1 个wireshark 窗口打开

您能否提一些建议? 在此处输入图片说明

你真的不想把wireshark &放在反引号中。 执行循环的 shell 创建一个子 shell 来运行 wireshark 并等待该子 shell 关闭所有正在写入 stdout 的打开文件描述符,以便它可以收集写入的数据。 (这就是 bacticks 所做的!)。 如果您只想在后台运行wireshark,那么这应该可行:

for ...; do wireshark & done

请注意,反引号是非常古老的语法,并且至少从 90 年代中期开始就首选$() 如果你打算使用seq你应该像for i in $(seq 4); do ...那样写它for i in $(seq 4); do ... for i in $(seq 4); do ... 您正在使用bash ,因此您可以执行for((i=0; i <4; i++)) 有很多方法可以进行迭代,但这与您遇到的问题无关。

您不需要在 bash 中使用seq外部命令,并且`wireshark &`不正确 - 反引号用于命令替换,但请注意,这些天建议使用$()代替反引号 它应该是:

for i in {1..4}; do wireshark & done

你可以试试这个

for VARIABLE in file1
do
    command1 on $VARIABLE
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM