Использование\c в сценариях оболочки

Я редактирую скрипты других, и я вижу, что он/она использовал этот \c очень часто, как

echo "bla bla \c"

который при использовании просто печатает

bla bla \c

на экране.

Итак, мне было интересно, зачем использовать это или, может быть, я что-то упускаю, потому что он ничего не делает? Я проверил эскадронов, и я не нашел ничего подобного. Есть ли специальное использование \c в сценариях оболочки, в основном в bash и оболочках korn?

Ответ 1

\ c держит курсор в той же строке после окончания эха, но для его включения вам нужен флаг -e:

echo -e "bla bla \c"

Ответ 2

Я думаю, что попытка состоит в прекращении эха без новой строки.

Если это не работает в вашей системе, вы можете заменить этот способ,

echo "test \c"; echo " same line"

может стать,

echo -n "test"; echo " same line"

Более легкое изменение будет (как предложено Neil, +1 там),

echo -e "test \c"; echo " same line"

Ответ 3

POSIX утверждает, что:

\c Подавить <newline> , который в противном случае следует за конечным аргументом в выходе. Все символы, следующие за '\ c' в аргументы игнорируются.

В основном утилита POSIX XSI-совместимого echo должна выйти, когда она найдет \c, как видно из следующих команд:

echo -e "foo bar \c baz" "quux"

Ответ 4

Нет автоматического прерывания строки, очевидно:

Использование в оболочках UNIX

В оболочках UNIX Korn используется символ пробега \c для продолжения сигнала (без автоматического разрыва строки):

echo "Введите путь к файлу данных:\c"

Ответ 5

Фактически поведение "эха" изменяется в зависимости от используемой оболочки.
С простой оболочкой Bourne '\ c' будет интерпретироваться по умолчанию (поэтому курсор остается в строке).
С Bash он не интерпретируется по умолчанию (поэтому отображается строка "\ c" ), поэтому вы должны добавить параметр "-e", чтобы включить его.

Ответ 6

NAME      echo - отображение строки текста

СИНТАКСИС      echo [SHORT-OPTION]... [STRING]...      echo LONG-OPTION

ОПИСАНИЕ      Отрежьте STRING (s) до стандартного вывода.

   -n     do not output the trailing newline

   -e     enable interpretation of backslash escapes

   -E     disable interpretation of backslash escapes (default)

   --help display this help and exit

   --version