Иногда встречаю команду : (двоеточие) в командах sh, например:
: | echo "hello"
Команда выше успешно выполнится и отобразит hello.
Для команды : нет справочной страницы, а если попытаться узнать её путь с помощью which :, то получим
:: shell built-in command
Что означает это двоеточие и для чего оно используется?
Ответы
Ответ 1
справку об этой встроенной команде можно прочитать командой
$ help :
чаще всего эту команду можно встретить в таких конструкциях:
как короткую и экономичную замену программе true:
в бесконечных циклах:
while :; do ... done
вместо:
while true; do ... done
в рецептах makefile-ов, если требуется игнорировать ненулевой код возврата команды:
команда_код_возврата_которой_не_важен || :
вместо:
команда_код_возврата_которой_не_важен || true
или вместо:
-команда_код_возврата_которой_не_важен
когда надо передать вызываемой программе/команде пустую строку на её stdin:
$ : | программа_ожидающая_получения_информации_на_stdin
например:
$ : | openssl s_client ...
Ответ 2
Двоеточие — это эквивалент операции "NOP" (no op, нет операции) (пустая команда)
Может рассматриваться как синоним встроенной команды true. Команда : также является встроенной командой Bash, которая всегда возвращает true (0).
Комментариев нет:
Отправить комментарий