echo -n ничего не вводить, хотя echo не имеет параметров

На терминале набираю echo -n не будет ничего выводить вообще, если у echo нет параметров, то почему использование параметра -n вообще ничего не делает в echo? Примечание: делать что-то вроде echo nil -n nil будет работать и выводить nil -n nil, так что, если эхо выводит все, то почему не выводит -n, должен вывести -n ничего не делать

2 ответа

Решение

По умолчанию echo добавляет символ вывода новой строки к его выводу, поэтому, если вы выдаете echo без каких-либо параметров, выводом будет ничто, за которым следует символ новой строки.

-n опция означает "не выводить завершающий перевод строки". Поэтому, когда вы выпускаете echo -n он использует -n как вариант, и ничего не выводит без перевода строки. Это не оставит никаких доказательств вывода на дисплей.

Если вы используете письмо, которое не является допустимым вариантом для echo например, '-x', он будет выведен на экран с новой строкой, как обычно. Если вы используете -n в другом вводе, он не будет читаться как опция, поэтому будет печататься нормально.

Чтобы добавить ответ Arronical, echo не поддерживается --, которое является стандартным соглашением для объявления "Это конец параметров / флагов, рассмотрите все, что следует за аргументами".

GNU echo можно сделать на вывод -n используя

echo -e "\e--n"

В zsh, echo это встроенная оболочка, и echo - -n делает работу

Другие вопросы по тегам