0

嗨,我想将 shell 命令的输出存储到 chef 变量中。我已经看到了一些方法,但无法获得如何做到这一点。

这是我到目前为止尝试过的

    current_version = `#{node['kayako_nginx']['prefix']}/sbin/nginx -v | grep -Po "(\d+\.\d+\.\d+)"`
  print "cheking version of nginx  #{current_version}"

它正在执行命令但不存储它

这是执行 chef 时的输出

 nginx version: nginx/1.5.3
cheking version of nginx  
4

1 回答 1

1

很可能您的第一个字符串有问题。像这样试试

current_version = `#{node['kayako_nginx']['prefix']}/sbin/nginx -v | grep -Eo "(\d+\.\d+\.\d+)"`

grep 选项已更改为-Eo

没有括号的版本也应该工作

current_version = `#{node['kayako_nginx']['prefix']}/sbin/nginx -v | grep -Eo "\d+\.\d+\.\d+"`
于 2014-03-18T15:05:26.523 回答