-2

通过从 inspec.backend.run_command 执行。如果我在 $memory 中使用 awk,它只打印 CPU 而不是内存。

这是我的代码:

control 'nodes_certs' do  
 impact 0.7               
 title 'nodes_certs'     
 desc 'An optional description...'

nodecert=inspec.backend.run_command("name() { local cpu=$(nproc); local mem=$`(free -g | awk \'/Mem/ {print $2}\')`; echo $cpu; echo $mem ; }; name\'").stdout

print nodecert

end

这是输出:

16

Profile: tests from mem.rb (tests from mem.rb)
Version: (not specified)
Target:  local://

     No tests executed.
4

1 回答 1

0

我认为您的 bash 脚本中有错字。你不需要反引号,如果你使用$(). 尝试改变:

$`(free -g | awk \'/Mem/ {print $2}\')`

$(free -g | awk \'/Mem/ {print $2}\')
于 2020-01-29T07:55:03.413 回答