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