Что такое Escape-персонаж Bash "\ c"? - PullRequest
13 голосов
/ 23 августа 2011

Какое имя и функция escape-символа \c в Bash? Каково его числовое значение? Я видел, что \cx является управляющим символом, но как насчет простого \c? Кажется, что:

echo -e "Hello World\c"

и

echo -en "Hello World"

эквивалентны. Тем не менее, Python не использует его как escape-символ, и он отсутствует во всех списках escape-символов, которые я нашел. Это специфичное для Bash поведение?

Ответы [ 4 ]

15 голосов
/ 23 августа 2011

Это на самом деле характерно для некоторых версий echo (я уверен, что \c пришел от SysV, в то время как версия -n была BSD-ism).

Это просто означает, что не выводить завершающий символ новой строки.

12 голосов
/ 23 августа 2011

См. Справочную страницу echo или раздел echo в разделе Bash Builtins руководства Bash :

echo интерпретирует следующие escape-последовательности:

...
\ С
подавить дальнейший вывод

4 голосов
/ 23 августа 2011

Это управляющий символ «Конец текста»; он сообщает Shell, что конец текста достигнут.

Не совсем уверен, что это актуально, но я могу ошибаться.

вот документ:

http://en.wikipedia.org/wiki/ASCII#ASCII_control_characters

и

http://en.wikipedia.org/wiki/End-of-text_character

0 голосов
/ 23 августа 2011

Можете ли вы обновить свой вопрос, добавив немного контекста о том, как используется \ c?

Вы можете использовать \c для экранирования управляющих символов, которые вы можете, скажем, записать в файл или каналв качестве ввода для другой команды.

Это запишет в терминал текст "some command", за которым следует двоичный ctrl-d (ascii 0x4):

echo some control string $'\cd' 

См. полный список escape-символовсо страницы руководства bash: http://linux.die.net/man/1/bash

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...