【问题标题】:Unable to get correct output in linux script无法在 linux 脚本中获得正确的输出
【发布时间】:2016-07-13 11:09:59
【问题描述】:
#!/bin/bash
ac = "(free | grep Mem | awk '{print $4/$2 * 100.0}')"
echo "$ac"

我想将剩余(空闲)的 RAM 使用百分比作为输出存储在变量中以供进一步处理。 取而代之的是 m 得到 $ac 输出为

    total        0.00

请帮忙

【问题讨论】:

  • 这不可能是你的真实脚本,因为你不能在作业 ac = 周围有空格。
  • 抱歉听不懂你想说什么?
  • @NikhileshYadav 他说需要ac="$(free | grep Mem | awk '{print $4/$2 * 100.0}')" 而不是ac = "(free | grep Mem | awk '{print $4/$2 * 100.0}')"

标签: linux bash shell ram


【解决方案1】:
#!/bin/bash
ac="$(free | grep Mem | awk '{print $4/$2 * 100.0}')"
echo "$ac"

对我来说很好。

(顺便说一句,awk 也可以做 grep 的工作:

free | awk '$1=="Mem:" { print 100*$4/$2; }'

)

【讨论】:

  • 请复制上面的代码,保存到.sh文件并执行,你会看到和我展示的一样的结果
  • @NikhileshYadav 我没有看到。系统上的独立 free 输出到 stdout 和 stderr 是什么?
  • 你能在截图中包含cat -v test.sh的输出吗?
  • @NikhileshYadav “它必须是ac="$(free | grep Mem | awk '{print $4/$2 * 100.0}')" 而不是ac = "(free | grep Mem | awk '{print $4/$2 * 100.0}')"”的哪一部分你不明白吗?
  • 是的,现在我知道我需要输入 '$',感谢您的帮助 :)
猜你喜欢
  • 1970-01-01
  • 2020-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多