Chef

shell命令內的廚師noop

  • January 2, 2019

如果 bash 命令返回某個值,我想擺脫廚師。

execute 'noop' do
 command <<-EOH
   cmd_output=$(echo "test")
   if [ "$cmd_output" == "test" ]; then
      return
   fi
 EOH
end

我遇到了一個錯誤return: can only 'return' from a function or sourced script

獲取 bash 命令的輸出然後基於此返回的最佳方法是什麼?

您的錯誤消息來自 Bash,而不是 Chef - 為避免混淆,請在將腳本添加到 Chef 之前從 shell 手動測試您的腳本。

正如錯誤所說,Bash 只會讓你return從一個函式或另一個腳本中使用source. 您不能使用它退出主腳本。

在您的範例中,替換returnexit 0應該可以。

引用自:https://serverfault.com/questions/947150