我正在尝试扩展一个现有的食谱,在这个食谱中,我们使用Mixlib::ShellOut来收集相当数量的关于Oracle安装的信息。大多数情况下,它只是工作。
我试图为TFA运行的地方添加一个节点属性--因为这可以根据版本的不同而变化。从服务器本身,一个简单的ps -ef | grep tfa | grep java | awk '{print $NF}'
给我的正是我所需要的。
当我把它添加到配方中,作为
tfa_home = ::Mixlib::ShellOut.new("ps -ef | grep tfa | grep java | awk '{print $NF}'")
tfa_home.run_command
node.normal['gbucs_oracledb']['orahome']['tfa_home'] = tfa_home.stdout.strip
输出的json似乎得到了一个换行符以及字符串"$NF'"。
"tfa_home": "/u01/app/19.0.0.0/grid/tfa/<hostname>/tfa_home\n$NF}'"
我试过几种不同的方法来转义$NF,但到目前为止还没有成功。有什么明显的解决方案吗?
怎樣 String.gsub ?
tfa_home.stdout.strip.gsub(/\n\$NF}'/, '')