Почему
$ echo '-n'
не пишет -n на терминале, хотя -n написано в кавычках?echo newline suppression
ответ
Цитаты не помогают, потому что ... тьфу, это трудно объяснить. Оболочка удаляет кавычки перед тем, как сама команда «эхо» будет оценена, поэтому к этому времени они не имеют значения.
Попробуйте это:
echo - -n
Это не документировано, как работает (я бег Ubuntu Linux), но echo
почти наверняка встроено в любого оболочки вы используете, чтобы страница людей все равно. Это работает для меня. (Я бегу zsh
, потому что я действительно упрямый и изощренный).
редактировать: ну, кажется, что bash
edit
встроенный не ведет себя таким образом. Я не знаю, что предложить; это:
echo '' -n
даст вам «-n» предшествует пробел, который (в зависимости от того, что вы делаете), может быть в порядке.
вы должны попытаться использовать более портативный printf
, насколько это возможно.
Вы можете попробовать
echo -e '\055n'
Не Quiete есть:
echo -e 'a-n\b\b\b '
-n
удивительно это работает:
echo -e '-n\b'
-n
и здесь решение, я могу объяснить:
echo "foobar" | sed 's/.*/-n/'
-n
я обнаружил, что следующий раз работает в Баш:
echo -n PRINT_THIS
Таким образом, вы должны поставить -n первое место.
На каком языке вы используете? – thecoshman
Я догадался, что это вопрос синтаксиса оболочки (т. Е. Bash или что-то еще). – Pointy