首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash脚本-将命令的多个输出存储在单独的变量中

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

Stack Overflow用户
提问于 2021-07-22 12:13:23
回答 1查看 350关注 0票数 1

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

代码语言:javascript
复制
ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'

有人知道怎么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-22 12:19:35

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

切题,你真的想失去长链的greps。

代码语言:javascript
复制
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数组,请尝试

代码语言:javascript
复制
array=($(ifconfig | awk '...'))

但是,通常情况下,您可能只想遍历结果:

代码语言:javascript
复制
ifconfig |
awk '...' |
while IFS='' read -r ip; do
    # something with "$ip"
done
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68484651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档