![](/img/trans.png)
[英]How to reference the “next” command line argument in a bash script for loop?
[英]bash - for loop in command line
你真的不想把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.