повторите подавление новой строки [дубликат]

7
задан jww 25 April 2018 в 23:11
поделиться

5 ответов

Поскольку кавычки обрабатываются оболочкой, и команда echo получает простой -n . Если вы хотите echo -n , вы можете, например, printf '% s \ n' -n

10
ответ дан 6 December 2019 в 12:47
поделиться

Не успокаивайтесь:

echo -e 'a-n\b\b\b '
 -n

на удивление это работает:

echo -e '-n\b'
-n

и вот решение, которое я могу объяснить:

echo "foobar" | sed 's/.*/-n/'
-n
0
ответ дан 6 December 2019 в 12:47
поделиться

вам следует по возможности использовать более портативный printf .

2
ответ дан 6 December 2019 в 12:47
поделиться

Цитаты не помогают, потому что ... тьфу, это сложно объяснить. Оболочка удаляет кавычки перед вычислением самой команды "echo", поэтому к этому времени они не имеют значения.

Попробуйте следующее:

echo - -n

Это не задокументировано как работающее (я использую Ubuntu Linux), но echo почти наверняка встроено в любую используемую вами оболочку, поэтому страница руководства в любом случае сомнительно. У меня это действительно работает. (Я использую zsh , потому что я действительно учтивый и искушенный).

edit : похоже, встроенная bash встроенная edit работает иначе. Я не знаю, что предложить; this:

echo '' -n

даст вам "-n" перед пробелом, что (в зависимости от того, что вы делаете) может быть нормальным.

0
ответ дан 6 December 2019 в 12:47
поделиться

Вы можете попробовать

echo -e '\055n'
2
ответ дан 6 December 2019 в 12:47
поделиться
Другие вопросы по тегам:

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