我有一个list
文件,其中包含:
1.1.1.1:50
1.1.1.2:60
1.1.1.3:70
我正在尝试创建两个变量并执行内部应用程序以使用第二列散列第一列。我做的是这些循环,但它们给了我9种可能性,我需要只有3个:
这是我的剧本
#!/bin/bash
for a in $(cat list | cut -d ":" -f 1 )
do
for b in $(cat list | cut -d ":" -f 2 )
do
echo $a,$b # this is example
done
done
答案 0 :(得分:1)
sed 's/:/ /' list |
while read ipv4 port
do
echo "IPv4 address: $ipv4; Port number: $port"
done
唯一需要注意的是,如果在循环中设置其他变量,它们将在子shell中运行,不会影响脚本的其余部分。如果需要,有很多方法(查找process substitution)。