Jus*_*tin 1 bash shell shellcheck
如何重写以下bash命令以使ShellCheck兼容?
memory=$(cat /proc/meminfo | grep 'MemTotal:' | awk {'print $2}' 2> /dev/null)
Run Code Online (Sandbox Code Playgroud)
它目前抱怨:
shellcheck投诉是
cat filename | grep 'pattern'grep 'pattern' filenameawk '{command}'因此,满足shellcheck的版本看起来像
memory=$(grep 'MemTotal:' /proc/meminfo | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)
我不确定你为什么重定向标准错误,所以我放弃了它.
但是,输出到awk的grep输出很少是最好的解决方案; awk可以做任何grep可以做的事情,所以你可以进一步简化
memory=$(awk '/MemTotal:/ { print $2 }' /proc/meminfo)
Run Code Online (Sandbox Code Playgroud)
没有管道!