bash 脚本 - 将命令的多个输出存储在单独的变量中

en1cc

我想将以下命令的输出存储在每个 IP 地址的单独变量中:

ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'

有谁知道如何做到这一点?

三人组

将值存储为单独变量的要求似乎不合适。只需生成列表,然后循环遍历它或其他什么。

切线,你真的想失去greps的长链

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章