Назад | Перейти на главную страницу

Chef noop внутри команды оболочки

Я хочу вырваться из шеф-повара, если команда 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.

Как говорится в ошибке, Bash позволит вам return из функции или другого скрипта, включенного с использованием source. Вы не можете использовать его для выхода из основного скрипта.

В вашем примере замена return с участием exit 0 должно сработать.