![遍历以空格分隔的字符串](https://linux22.com/image/99028/%E9%81%8D%E5%8E%86%E4%BB%A5%E7%A9%BA%E6%A0%BC%E5%88%86%E9%9A%94%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
所以我跑ips=$(arp | awk '{print $1}')
将从命令检索到的所有 IP 地址保存arp
到变量ips
.echo
给ips
了我Address 192.168.10.100 192.168.10.101 192.168.10.1
。我假设它Address 192.168.10.100 192.168.10.101 192.168.10.1
被保存为ips
变量中的字符串。我想要的是一种循环遍历变量的方法ips
,也许可以将变量保存在变量中,ip
用它做一些事情,然后移动到下一个变量。
答案1
空格是默认的字段分隔符,因此一个简单的for
循环可以毫无问题地处理这个问题。执行此操作时要非常小心,因为您可以执行这些类型的循环很容易得到意想不到的结果。
ips=$(arp | awk '{print $1}')
for ip in $ips
do
#Work here
echo IP: $ip
done