首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写bash命令以符合ShellCheck要求

重写bash命令以符合ShellCheck要求
EN

Stack Overflow用户
提问于 2017-08-16 01:17:16
回答 2查看 139关注 0票数 1

如何重写以下bash命令以使其符合ShellCheck

代码语言:javascript
复制
memory=$(cat /proc/meminfo | grep 'MemTotal:' | awk {'print $2}' 2> /dev/null)

它目前正在抱怨:

  • 没用的猫。考虑一下'cmd < file \.‘或者“cmd文件.”
  • 这是字面意思。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-16 01:35:56

失职投诉如下

  • 使用cat filename | grep 'pattern'代替grep 'pattern' filename
  • awk命令中的第一个大括号位于单引号的外部,因此是文字;它应该是awk '{command}'

因此,满足would检查的版本如下所示

代码语言:javascript
复制
memory=$(grep 'MemTotal:' /proc/meminfo | awk '{print $2}')

我不知道你为什么要重定向标准错误,所以我放弃了。

然而,管道grep输出到awk很少是最好的解决方案;awk几乎可以做grep所能做的任何事情,因此您可以进一步简化为

代码语言:javascript
复制
memory=$(awk '/MemTotal:/ { print $2 }' /proc/meminfo)

没有管道!

票数 7
EN

Stack Overflow用户

发布于 2017-08-16 01:21:50

只是猜测一下,你可能想:

代码语言:javascript
复制
memory=$(grep 'MemTotal:' /proc/meminfo | awk '{print $2}' 2> /dev/null)

但是,这是对外壳检查输出的直接解释,所以我不确定您在问什么。就目前情况而言,你实际上是在问:“为什么这不起作用?”

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45703701

复制
相关文章

相似问题

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