Разница между «эхо» и «эхо-е» [закрыто]

25

В чем разница между echoи echo -e? Какие кавычки ("" или ") следует использовать с командой echo? то есть: echo "Print statement"или echo 'Print statement'? Кроме того, каковы доступные опции, которые можно использовать вместе с echo?

Venkatesh
источник
3
Какая оболочка? echo -eне определяется POSIX и, вероятно, зависит от оболочки.
Иордания
Отвечает ли это на ваш вопрос? unix.stackexchange.com/questions/65803/…
дхаг
2
используйте, man echoчтобы прочитать руководство для echo.
няня
echo не выполняет свои аргументы как команды, он просто ... echo их
Anthon

Ответы:

33

echoсам по себе отображает строку текста. "..."Буквально в любой из следующих двух кавычек он будет принимать любую вещь и просто печатать как есть. Тем не менее, echo -eвы делаете, echoчтобы включить интерпретацию обратной косой черты. Итак, имея в виду, вот несколько примеров

INPUT: echo "abc\n def \nghi" 
OUTPUT:abc\n def \nghi

INPUT: echo -e "abc\n def \nghi"
OUTPUT:abc
 def 
ghi

Примечание: \nэто новая строка, т.е. возврат каретки. Если вы хотите узнать, какие другие последовательности распознаются, echo -eвведите в man echoсвой терминал.

3kstc
источник
2
echoвстроен в большинство оболочек. вместо этого man echoбудет задокументирована echoотдельная команда.
Стефан Шазелас
Вы описываете поведение GNU echoили оболочки GNU, echoкогда не в режиме соответствия Unix. В других местах поведение, как правило, будет другим.
Стефан Шазелас
3

В большинстве случаев ОБОЛОЧКА не может echoпринять escape-последовательность ( \n \t). Где как echo -eможно

echo -e " This is \n an \t example"

Одинарные и двойные кавычки в основном предназначены для решения вопросов интерполяции. Вы можете найти более подробную информацию здесь, почему эхо игнорирует мои символы цитаты?

Говинд Кайлас
источник
Это наоборот. В большинстве оболочек (ksh88, ksh93, pdksh, mksh, Bourne, zsh, dash, bash и sh из всех Unix-совместимых систем, некоторые из них, например, ksh93 или bash только в некоторых средах) echo, расширяются escape-последовательности. echoРеализация , которая принимает -eне POSIX - совместимым.
Стефан Шазелас