Ответ 1
\ c держит курсор в той же строке после окончания эха, но для его включения вам нужен флаг -e:
echo -e "bla bla \c"
Я редактирую скрипты других, и я вижу, что он/она использовал этот \c
очень часто, как
echo "bla bla \c"
который при использовании просто печатает
bla bla \c
на экране.
Итак, мне было интересно, зачем использовать это или, может быть, я что-то упускаю, потому что он ничего не делает? Я проверил эскадронов, и я не нашел ничего подобного. Есть ли специальное использование \c в сценариях оболочки, в основном в bash и оболочках korn?
\ c держит курсор в той же строке после окончания эха, но для его включения вам нужен флаг -e:
echo -e "bla bla \c"
Я думаю, что попытка состоит в прекращении эха без новой строки.
Если это не работает в вашей системе, вы можете заменить этот способ,
echo "test \c"; echo " same line"
может стать,
echo -n "test"; echo " same line"
Более легкое изменение будет (как предложено Neil
, +1 там),
echo -e "test \c"; echo " same line"
POSIX утверждает, что:
\c Подавить <newline> , который в противном случае следует за конечным аргументом в выходе. Все символы, следующие за '\ c' в аргументы игнорируются.
В основном утилита POSIX XSI-совместимого echo
должна выйти, когда она найдет \c, как видно из следующих команд:
echo -e "foo bar \c baz" "quux"
Нет автоматического прерывания строки, очевидно:
Использование в оболочках UNIX
В оболочках UNIX Korn используется символ пробега \c для продолжения сигнала (без автоматического разрыва строки):
echo "Введите путь к файлу данных:\c"
Фактически поведение "эха" изменяется в зависимости от используемой оболочки.
С простой оболочкой Bourne '\ c' будет интерпретироваться по умолчанию (поэтому курсор остается в строке).
С Bash он не интерпретируется по умолчанию (поэтому отображается строка "\ c" ), поэтому вы должны добавить параметр "-e", чтобы включить его.
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