我想将以下命令的输出存储在每个 IP 地址的单独变量中:
ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'
有谁知道如何做到这一点?
将值存储为单独变量的要求似乎不合适。只需生成列表,然后循环遍历它或其他什么。
切线,你真的想失去grep
s的长链。
ifconfig |
awk '$1 == "inet" && ($2 != "127.0.0.1" && $2 != "addr:") { print $2 }
$1 == "inet" && $2 == "addr:" && $3 != "127.0.0.1" { print $3 }'
要将结果分配给 Bash 数组,请尝试
array=($(ifconfig | awk '...'))
但通常情况下,您可能只想遍历结果:
ifconfig |
awk '...' |
while IFS='' read -r ip; do
# something with "$ip"
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句