истина и ложь (команды)
Первоначальный выпуск | январь 1979 года |
---|---|
Операционная система | Unix и Unix-подобные |
Платформа | Кросс-платформенный |
Тип | Команда |
В -подобных операционных системах Unix true
и false
— это команды, единственная функция которых — всегда возвращаться с заранее определенным статусом завершения . Программисты и сценарии часто используют статус завершения команды для оценки успеха (нулевой статус завершения) или неудачи (ненулевой) команды. true
и false
команды представляют собой логические значения успеха команды, поскольку true возвращает 0, а false возвращает 1. [Примечание 1]
Использование
[ редактировать ]Команды обычно используются в условных операторах и циклах сценариев оболочки . Например, следующий сценарий оболочки повторяет цикл echo hello до тех пор, пока он не будет прерван:
while true
do
echo hello
done
Команды можно использовать для игнорирования успеха или неудачи последовательности других команд, как в примере:
make … && false
пользователя Установка оболочки входа в false в /etc/passwd фактически запрещает им доступ к интерактивной оболочке, но их учетная запись все еще может быть действительна для других служб, таких как FTP . (Хотя /sbin/nologin , если он доступен, может быть более подходящим для этой цели, поскольку он печатает уведомление перед завершением сеанса.)
Программы не принимают «реальных» параметров; в версии GNU стандартный параметр --help
отображает сводку использования и --version
отображает версию программы.
Нулевая команда
[ редактировать ]Истинную : команду иногда заменяют очень похожей нулевой командой [1] пишется через одно двоеточие ( :
). Команда null встроена в оболочку и поэтому может быть более эффективной, если true — это внешняя программа ( true обычно — это встроенная функция оболочки). Мы можем переписать верхний пример, используя :
вместо true
:
while :
do
echo hello
done
Команда null может принимать параметры, которые игнорируются. Она также используется в качестве недействующей фиктивной команды для побочных эффектов, таких как присвоение значений по умолчанию переменным оболочки через команду ${parameter:=word}
форма расширения параметров. [2] Например, из bashbug — скрипта сообщения об ошибках для Bash :
: ${TMPDIR:=/tmp}
: ${EDITOR=$DEFEDITOR}
: ${USER=${LOGNAME-`whoami`}}
См. также
[ редактировать ]Примечания
[ редактировать ]- ^ Они отличаются от значений истинности классической логики и большинства языков программирования общего назначения: true (1 или T) и false (0 или ⊥) .
Ссылки
[ редактировать ]- ^ «Двоеточие» , Базовые спецификации открытой группы, выпуск 7 , стандарт IEEE 1003.1-2008.
- ^ Купер, Мендель (апрель 2011 г.), «Нулевая команда» , Расширенное руководство по написанию сценариев Bash, 6.3 , Проект документации Linux , получено 4 августа 2011 г.
Внешние ссылки
[ редактировать ]
- Единая спецификация UNIX , версия 4 от The Open Group : возвращает истинное значение – Справочник по оболочке и утилитам,
- Единая спецификация UNIX , версия 4 от The Open Group : возвращать ложное значение – Справочник по командной строке и утилитам,