首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >载重平均值

载重平均值
EN

Unix & Linux用户
提问于 2018-03-10 11:43:00
回答 1查看 149关注 0票数 0

我正在尝试grep所有的负载平均值&将它们放在一个数组中。具体的方法应该是什么,记住以下的要求。

定义数组:

代码语言:javascript
复制
LA= ("one" "five" "fifteen")
LA= (`(uptime | grep -o '[0-9]\+\.[0-9]\+*')`)

但是uptime | grep -o '[0-9]\+\.[0-9]\+*'命令提供如下输出:

代码语言:javascript
复制
3.08
3.49
3.61

要求: 1.不应该有换行符,所以平均值用空格分隔,并符合数组语法。

值只在将小数发送到输出变量或数组变量之前。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-03-10 12:18:06

在填充数组时,行提要不是问题。对bash来说,它们只是上下文中的另一个单词分隔符。

命令LA= ((uptime | grep -o '[0-9]\+\.[0-9]\+*'))有两个错误:

  1. =之后的空间。这是一种有效的语法,但并不如您所期望的那样。它没有将行剩余部分的值分配给$LA,而是将$LA设置为空字符串,然后运行行的其余部分。这对于临时在运行特定命令之前重写导出的环境变量的值是一个有用的特性。一旦命令退出,变量的原始值就会被恢复。例如$ VISUAL=/usr/bin/joe敏感编辑器myfile.txt .$ echo $VISUAL /usr/bin/vi
  2. 在第二个$之前缺少一个(。如果没有$,您的命令不是命令替换,而是带有伪操作数和操作符的shell算法。

试一试:

代码语言:javascript
复制
$ LA=($(uptime | grep -Eo '[0-9]+\.[0-9]+'))
$ typeset -p LA
declare -a LA=([0]="0.97" [1]="1.23" [2]="1.39")
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/429413

复制
相关文章

相似问题

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