小编kai*_*ity的帖子

如何在for循环中拆分行并用作命令行调用的参数

我有一个看似非常简单的问题,但我无法提出令人满意的解决方案。我有一个包含 IP 和端口的简单输入文件,例如

10.155.78.0 445
172.17.11.0 3389
Run Code Online (Sandbox Code Playgroud)

现在我想为nc -vvv <ip> <port>for 循环中的每一行执行。

我能想到的就是用 cut 将线分割两次:

for x in $(cat inputfile); do nc -vvv $(echo -n $x | cut -d" " -f1) $(echo -n $x | cut -d" " -f2)
Run Code Online (Sandbox Code Playgroud)

或使用 gawk 并启动一个子 shell

for x in $(cat dingens); do cmd=$(echo $x | gawk -F" " '{ print "nc -vvv -w 2 " $1 " " $2 }'); echo -n $cmd | bash; done
Run Code Online (Sandbox Code Playgroud)

但两种解决方案似乎都非常复杂。没有更好的解决办法吗?

bash

2
推荐指数
1
解决办法
174
查看次数

标签 统计

bash ×1