2

Я нашел это , if заявление в /etc/init/rc-initsys.conf

# Check for default runlevel in /etc/inittab
    if [ -r /etc/inittab ]
    then
    eval "$(sed -nre 's/^[^#][^:]*:([0-6sS]):initdefault:.*/DEFAULT_RUNLEVEL="\1";/p' /etc/inittab || true)"
    fi

Я не понимаю операции or(||) в команде eval .

Не могли бы вы дать мне подсказку или ссылку?

1 ответ1

3

Если первая команда не выполняется, вторая выполняется и возвращает успешный код завершения. Это гарантирует, что возвращаемое значение всей строки (например, в $?) true (код выхода 0).

Как правило, последующие команды или, для действий в конце скрипта, его вызывающая сторона может проверять возвращаемое значение предыдущего действия, чтобы определить, как продолжить (т.е. обработку ошибок).

Если вы (как автор сценария) не хотите сообщать о сбое для команды, вы можете добавить || true чтобы всегда возвращать успешный код возврата. В зависимости от того, как используется весь сценарий, одна неудачная команда вне условия может даже прервать выполнение.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .