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 делает работу