Задать вопрос
@Drovosek01

Почему в команде man echo нет информации об аргументе -e но он работает?

Если открыть терминал в современной macOS и выполнить команду
echo -e "\e[92mAll done, enjoy\!\e[0m"
Вероятно, вы увидите зеленый текст.
3f8ad4573b06388353c82a8db0965718.png
Или вы увидите текст, обрамленный кодом, если у вас старая система или современная, но загроможденная система.
8956874f4c301820e01b213863c75fd6.png

Вероятно, в первом случае (когда текст стал зеленым) использовалась встроенная в оболочку zsh команда 'echo' и команда 'echo' в этой оболочке поддерживает аргумент '-e', но в старом bash 3.2 либо команды 'echo' и она использует системный файл /bin/echo, либо 'echo' в bash 3.2 не поддерживает аргумент '-e'.
Но это всего лишь гипотеза.

Я хочу посмотреть, какие аргументы поддерживает команда 'echo', а в оболочке zsh я запускаю 'man echo', но в справке вижу информацию только об аргументе '-n', а об аргументе '-e' ничего не написано. Подозреваю, что при выполнении команды `man echo` выводится справка по файлу /bin/echo.

9fc81ec2a30c9fdd06542acf5127690b.png

Вопросы:
Как просмотреть справку по команде «echo», встроенной в zsh, и как понять, какая команда «echo» поддерживает аргумент «-e»?
  • Вопрос задан
  • 29 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
Потому что man echo говорит про /usr/bin/echo а в bash используется встроенная в bash команда echo (т.е. это команда языка а не утилита), соответственно и документацию нужно смотреть в bash
https://www.man7.org/linux/man-pages//man1/bash.1.html
echo [-neE] [arg ...]
              Output the args, separated by spaces, followed by a
              newline.  The return status is 0 unless a write error
              occurs.  If -n is specified, the trailing newline is
              suppressed.  If the -e option is given, interpretation of
              the following backslash-escaped characters is enabled.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы