您好我想将shell命令的输出存储到chef变量中。我已经看过某种方式,但却无法做到这一点。
这是我到目前为止所尝试的内容
current_version = `#{node['kayako_nginx']['prefix']}/sbin/nginx -v | grep -Po "(\d+\.\d+\.\d+)"`
print "cheking version of nginx #{current_version}"
它正在执行命令但不存储它
这是执行厨师时的输出
nginx version: nginx/1.5.3
cheking version of nginx
答案 0 :(得分: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+"`