linux - 如何使用多个 cat 输入运行多个 for 循环

标签 linux bash shell for-loop while-loop

我有以下内容的种子文件。

$cat seed.txt
macmachine,192.168.2.4,29772
windowsmachine,192.168.2.5,29772
$

当我首先运行 for 循环时,$x 将从种子文件中捕获第一行的第一个字段,即 macmachine,然后“do”运行第二个 for 循环,这将捕获第一行的第二个字段等等...

这是我的for循环

for x in `cat seed.txt |cut -d ',' -f1`; do
    for y in `cat seed.txt |cut -d ',' -f2`; do
        curl -v -H -X GET -H "X-TEST-Request-Id: Domain-$x" http://$y:8080/static/test/$y.jsp;
    done;
done

问题是它运行了 8 次。如果我从种子文件中删除第一行,它将只运行一次。

我确定循环有问题,但我无法追踪到。 请建议如何修复它。

最佳答案

当你想一行一行地处理时,做类似的事情

while IFS=, read -r x y z; do
   curl -v -H -X GET -H "X-TEST-Request-Id: Domain-$x" "http://$y:8080/static/test/$z.jsp"
done < seed.txt

关于linux - 如何使用多个 cat 输入运行多个 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37354127/

相关文章:

linux - 更改嵌入式 linux 内核代码

bash - 如何在 HBase shell 中循环执行命令而不每次都调用 shell

C/Linux - 服务器 <-> 与命名管道的终端通信

linux - 如何使用grep命令显示文件最后一个字段大于100k小于140k的条目

java - 从 VB.Net 执行 Java 类

bash - 在 shell 脚本中设置键值对

linux - HTTP::Daemon 和调试错误代码

c++ - 如何检查进程是否在 C++ 中运行?

linux - ping命令中的-U选项有什么用?

python - 无法使用 `azcopy login --tenant-id` 和 Azure 政府帐户的租户 ID 登录 Azure?