bash - awk 和 bash 脚本?

标签 bash awk command sh

<分区>

我想知道为什么它不起作用。 请多多指教。

1.工作

$ nu=`awk '/^Mem/ {printf($2*0.7);}' <(free -m)`
$ echo $nu
1291.5

2。不工作

$ cat test.sh
#!/bin/bash
nu=`awk '/^Mem/ {printf($2*0.7);}' <(free -m)`
echo $nu
$ sh test.sh  
test.sh: command substitution: line 2: syntax error near unexpected token `('
test.sh: command substitution: line 2: `awk '/^Mem/ {printf($2*0.7);}' <(free -m)'

最佳答案

能否请您尝试以下。

nu=$(free -m | awk '/^Mem/ {print $2*0.7}')
echo "$nu"

需要注意的事情是:

  • 反引号的使用已过时,因此请使用 $存储变量的值。
  • 也是第一次运行free命令将其标准输出作为标准输入传递给 awk使用 | 命令(在这种情况下,这应该是将命令输出发送到 awk 的理想方式)并将其输出保存到名为 nu 的变量中.
  • 现在终于打印变量nu通过 echo .
  • <(...) bash 而非 sh 支持进程替换,因此我试图提供一个无需进程替换即可支持的解决方案(我之前也提到过)。

关于bash - awk 和 bash 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55293026/

相关文章:

ruby-on-rails - Ruby on Rails - Lynda - 生成 Controller 和 View , 'Rails Generate' 命令出错

linux - 如何使用 bash 脚本检查参数数量?

ios - 双引号内的 Bash 单引号

bash - 如何在 AWK 中打印 CSV 中的一系列列?

awk - 如何在awk中匹配新行?

bash - bash 中的 while 循环使用 pgrep 检查服务是否存在

python没有正确执行shell命令 "mail"

bash - Fedora 容器 No 'find' 命令可用

bash - 在我的 awk 语句中插入变量

java - 在 QSH 命令中导入属性文件 - iseries