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

Команда не найдена в инструкции if-else

У меня есть функция, которая выполняет chroot в какой-то каталог. Я выполняю эту команду дважды с помощью exec введите если if-else заявление. Первый раз я выполняю команду в then раздел, а второй раз - в else с некоторыми другими параметрами. Пока if возвращается true - все хорошо, но если вернется false поэтому я получаю такую ​​ошибку chroot not found. Моя часть кода:

define manage_users($some_variables)
{
    some code here ...

    if $action == "create" {
        $command = "..."
        exec {"${nsenter} && chroot ${some_dir} /bin/bash -c '${some_command}'":
            path    => ["/usr/sbin", "/usr/bin", "/bin"],
        }
    } #delete user
    else {
        some code ....

        exec { "${nsenter} && chroot ${some_dir} /bin/bash -c '${some_other_command}'":
            path    => ["usr/sbin", "/usr/bin", "/bin"],
            onlyif  => "...",
        }
    }
}

Что я делаю неправильно else? Мне кажется, как в then.

Твой путь:

            path    => ["usr/sbin", "/usr/bin", "/bin"],

Которые должны быть:

            path    => ["/usr/sbin", "/usr/bin", "/bin"],

Обратите внимание на добавленный / в usr/sbin.
Что имеет смысл, поскольку это /usr/sbin/chroot.