首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在监视命令中保留嵌套的命令替换

如何在监视命令中保留嵌套的命令替换
EN

Stack Overflow用户
提问于 2021-08-11 13:48:16
回答 2查看 105关注 0票数 1

我正在使用一个watch命令,它将多个命令串在一起,除了其中的一部分外,它们都可以工作。即使单独运行,它也没有所需的输出。

这是正在运行的监视命令。

watch -n 5 echo "$(echo "$(uptime | awk '{print$11}' | sed 's/,//g')/$(nproc)*100" | bc -l | cut -c-5)% overall CPU utilization"

输出显示执行时的cpu利用率,但不更新。

Every 5.0s: echo 4.750% overall CPU utilization

我几乎可以肯定,这是一个引用的问题,但我一直在阅读和尝试不同的事情,只是无法让它发挥作用。

下面是我尝试过的命令的一些不同版本:

在inside命令子程序上使用单引号

watch -n 5 echo "$(echo '$(uptime | awk '{print$11}' | sed 's/,//g')/$(nproc)*100' | bc -l | cut -c-5)% overall CPU utilization"

Every 5.0s: echo % overall CPU utilization % overall CPU utilization

转义内部命令子上的单引号

watch -n 5 echo "$(echo \'$(uptime | awk '{print$11}' | sed 's/,//g')/$(nproc)*100\' | bc -l | cut -c-5)% overall CPU utilization"

Every 5.0s: echo % overall CPU utilization % overall CPU utilization

在这两组命令子上使用单引号,并转义内部集

watch -n 5 echo '$(echo \'$(uptime | awk '{print$11}' | sed 's/,//g')/$(nproc)*100\' | bc -l | cut -c-5)% overall CPU utilization'

( -bash: syntax error near unexpected token )‘’

在这两组命令sub上使用单引号(到目前为止最接近期望的输出)

watch -n 5 echo '$(echo '$(uptime | awk '{print$11}' | sed 's/,//g')/$(nproc)*100' | bc -l | cut -c-5)% overall CPU utilization'

Every 5.0s: echo $(echo 0.24/8*100 | bc -l | cut -c-5)% overall CPU utilization 3.000% overall CPU utilization

如果我能确定如何让它每次都重新运行$(uptime | awk '{print$11}' | sed 's/,//g'),那么它应该能工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-11 14:03:20

我不确定watch部件应该做什么,但是您可以通过将所有处理重构成一个Awk脚本来极大地简化这一点。

像这样吗?

代码语言:javascript
复制
watch -n 5 'uptime | awk -v n="$(nproc)" "{cpu=\$11; gsub(/,/, \"\", cpu); printf \"%0.3f%% overall CPU utilization\\n\", cpu/n*100 }"'

引用有点麻烦;您可能希望将单引号代码保存为脚本,这样您就可以切换到围绕着Awk代码的单引号,并去掉反斜杠。

票数 0
EN

Stack Overflow用户

发布于 2021-08-11 14:28:40

若要跳过必须引用该命令,可以使用

代码语言:javascript
复制
myfunc() {
  insertYourCodeHere
}
export -f myfunc
watch -n5 bash -c myfunc
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68743334

复制
相关文章

相似问题

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