Если я введу
::
в оболочку bash, я получаю:
-bash: ::: command not found
Но только один : не приводит к выходу. Почему это?
Последний двоеточие является частью сообщения «не найден» по умолчанию:
$ x
x: command not found
$ ::
::: command not found
Причина, по которой единственный двоеточие ничего не дает, заключается в том, что : является допустимой командой, хотя она ничего не делает ( кроме возврата TRUE). Из раздела SHELL BUILTIN COMMANDS в man bash:
: [arguments]
No effect; the command does nothing beyond expanding arguments
and performing any specified redirections. A zero exit code is
returned.
Вы иногда увидите его в конструкциях, подобных
while :
do
something
done
См. Например, Какая цель служит для толстой кишки?
Попробуйте любую другую несуществующую команду, и вы увидите, что : служит для нормальной работы на английском языке:
$ ---
---: command not found
Добавленный двоеточие является частью самого сообщения об ошибке. Если один из типов cd ow приводит к bash: cd: ow: No such file or directory, это показывает, что ошибка помещает дополнительный двоеточие : No such file or directory
$ ::
bash: ::: command not found
$ kkkk
bash: kkkk: command not found
третий является разделителем от форматирования
в bash a : является пустой инструкцией void строки
вы получаете 3 двоеточия, потому что формат ошибки содержит двоеточие:
bash: <command>: command not found
Добавленный двоеточие является частью самого сообщения об ошибке. Если один из типов cd ow приводит к bash: cd: ow: No such file or directory, это показывает, что ошибка помещает дополнительный двоеточие : No such file or directory
Последний двоеточие является частью сообщения «не найден» по умолчанию:
$ x
x: command not found
$ ::
::: command not found
Причина, по которой единственный двоеточие ничего не дает, заключается в том, что : является допустимой командой, хотя она ничего не делает ( кроме возврата TRUE). Из раздела SHELL BUILTIN COMMANDS в man bash:
: [arguments]
No effect; the command does nothing beyond expanding arguments
and performing any specified redirections. A zero exit code is
returned.
Вы иногда увидите его в конструкциях, подобных
while :
do
something
done
См. Например, Какая цель служит для толстой кишки?
Попробуйте любую другую несуществующую команду, и вы увидите, что : служит для нормальной работы на английском языке:
$ ---
---: command not found
$ ::
bash: ::: command not found
$ kkkk
bash: kkkk: command not found
третий является разделителем от форматирования
в bash a : является пустой инструкцией void строки
вы получаете 3 двоеточия, потому что формат ошибки содержит двоеточие:
bash: <command>: command not found
Добавленный двоеточие является частью самого сообщения об ошибке. Если один из типов cd ow приводит к bash: cd: ow: No such file or directory, это показывает, что ошибка помещает дополнительный двоеточие : No such file or directory
Последний двоеточие является частью сообщения «не найден» по умолчанию:
$ x
x: command not found
$ ::
::: command not found
Причина, по которой единственный двоеточие ничего не дает, заключается в том, что : является допустимой командой, хотя она ничего не делает ( кроме возврата TRUE). Из раздела SHELL BUILTIN COMMANDS в man bash:
: [arguments]
No effect; the command does nothing beyond expanding arguments
and performing any specified redirections. A zero exit code is
returned.
Вы иногда увидите его в конструкциях, подобных
while :
do
something
done
См. Например, Какая цель служит для толстой кишки?
Попробуйте любую другую несуществующую команду, и вы увидите, что : служит для нормальной работы на английском языке:
$ ---
---: command not found
$ ::
bash: ::: command not found
$ kkkk
bash: kkkk: command not found
третий является разделителем от форматирования
в bash a : является пустой инструкцией void строки
вы получаете 3 двоеточия, потому что формат ошибки содержит двоеточие:
bash: <command>: command not found