Что такое возврат каретки в ворд
У меня есть один быстрый вопрос.
Это нормально, что bash (я использую 4.4.11) не отображает строки / текст, который отделен / заканчивается простым \r ?
Я был немного удивлен, увидев такое поведение:
Но текст «Привет снова» все еще там, как-то «спрятан»:
И как только мы просто поиграем с bash, это нормально . Но разве это потенциальный риск для безопасности? Что если содержимое переменной «а» пришло из внешнего мира и содержит «плохие команды», а не просто привет?
Еще один тест, немного ненадежный на этот раз:
Вообразите скрытое rm вместо скрытого ls .
То же поведение при использовании echo -e:
Это я что-то не так делаю .
Вы echo "$a" печатаете «привет», затем возвращаетесь к началу строки (что и \r делает), печатаете «снова», возвращаетесь снова, печатаете «джордж», снова возвращаетесь и переходите к следующей строке ( \n ). Это все совершенно нормально, но, как указывает Чепнер , это не имеет ничего общего с Bash: \r и \n интерпретируется терминалом, а не Bash (именно поэтому вы получаете полный вывод, когда отправляете команду od ).
Вы можете увидеть это лучше с
так как это оставит конец перезаписанного текста:
Вы не можете использовать это, чтобы скрыть команды, только, только их вывод (и только если вы можете быть уверены, что перезаписываете с достаточным количеством символов), если не используете, eval как вы показываете (но использование, eval как правило, не рекомендуется). Более опасным трюком является использование CSS для маскировки команд, предназначенных для копирования и вставки с веб-сайтов.
Понятно, спасибо. Мне повезло / не повезло использовать последнее слово в моем тесте, способное полностью переписать предыдущие два слова. Обратите внимание, что это на самом деле не имеет ничего общего с bash ; все зависит от терминала, как «отображать» возврат каретки или как отображать перезаписанные символы. Например, было бы совершенно правильно, чтобы терминал отображал -\r| что-то, напоминающее знак плюс, а не просто трубу. @chepner Полезно знать! Спасибо, что поделился. Я думал, что это было просто поведение Баш. @ GeorgeVasiliou Нет, bash просто записывает байты в файл; каждый, кто читает эти байты, должен их интерпретировать. Nitpick:, printf которая является встроенной командой bash (хотя она также существует как отдельный исполняемый файл), интерпретирует \r (последовательность из двух байтов: 0x5c и 0x72 и возвращает возврат каретки (один байт:) 0x0d . Затем, да, терминал интерпретирует байт 0x0d особым образом, но это не интерпретирует исходную строку \r .В мире Unix возврат каретки (обычно кодируемый как \r в языках программирования) является ничем не примечательным управляющим символом. Вы можете иметь возврат каретки внутри строки текста, как и любой другой символ, кроме перевода строки (также называемого переводом строки ), который отмечает конец строки.
В частности, в скрипте bash возврат каретки является обычным символом, составляющим слово, таким как буквы и цифры. Любой специальный эффект возврата каретки происходит из терминала, а не из оболочки.
Возврат каретки является управляющим символом . Когда вы печатаете его в терминал, вместо отображения глифа , терминал выполняет какой-то специальный эффект. Для возврата каретки специальный эффект заключается в перемещении курсора в начало текущей строки. Таким образом, если вы печатаете строку, которая содержит возврат каретки в середине, то эффект состоит в том, что вторая половина записывается поверх первой половины.
Некоторые другие управляющие символы имеют специальные эффекты: символ возврата на одну позицию перемещает курсор влево. Символ колокольчика заставляет терминал издавать звук или иным образом привлекать внимание пользователя. Экранирующий символ запускает экранирующую последовательность, которая может иметь все виды специальных эффектов.
Если вы выводите ненадежный вывод, вам нужно удалить или удалить управляющие символы. Не только возврат кареты, но и некоторые другие, в частности, спасательный персонаж, который может вызывать всевозможные негативные последствия. См. Может ли «кошение» файла представлять потенциальную угрозу безопасности? и как избежать атак escape-последовательности в терминалах? больше по теме.
Возврат каретки означает возврат к началу текущей строки без продвижения вниз. Название происходит от каретки принтера, так как мониторы были редкостью, когда название было придумано. Обычно это экранируется как \r , сокращенно CR , и имеет значение ASCII 13 или 0x0D .
Перевод строки означает переход вниз на следующую строку; тем не менее, он был перепрофилирован и переименован. Используемый как "новая строка ", он заканчивает строки (обычно путают с разделительными линиями). Обычно это экранируется как \n , сокращенно LF или NL, и имеет значение ASCII 10 или 0x0A . CRLF (но не CRNL) используется для пары \r\n .
Подача формы означает переход вниз на следующую «страницу». Он обычно использовался в качестве разделителей страниц, но теперь также используется в качестве разделителей разделов. (Он редко используется в исходном коде для разделения логически независимых функций или групп функций.) Текстовые редакторы могут использовать этот символ при «вставке разрыва страницы». Обычно это экранируется как \f , сокращенно FF , и имеет значение ASCII 12 или 0x0C .
Как управляющие символы, они могут интерпретироваться по-разному.
Наиболее распространенное отличие (и, вероятно, единственное, о чем стоит беспокоиться) - строки заканчиваются CRLF в Windows, NL в Unix-like и CR в старых Mac (ситуация изменилась с OS X, чтобы быть похожей на Unix). Обратите внимание, что смещение значения от LF к NL для одного и того же символа дает различия между Windows и Unix. (Windows, конечно, новее, чем Unix, поэтому она не приняла этот семантический сдвиг. Я не знаю историю Mac, использующих CR.) Многие текстовые редакторы могут читать файлы в любом из этих трех форматов и конвертировать между ними , но не все утилиты могут.
Подача формы немного более интересна (хотя реже используется напрямую), и с обычным определением разделителя страниц она может идти только между строками (например, после последовательности новой строки NL, CRLF или CR) или в начале или конец файла.
В настоящее время я добавляю подробные всплывающие подсказки на наш сайт, и я бы хотел (не прибегая к плагину jQuery со свистом-взрывами, я знаю, что их много!) Использовать возврат каретки для форматирования всплывающей подсказки.
Чтобы добавить совет, я использую title атрибут. Я просмотрел обычные сайты и использовал базовый шаблон:
Я попытался заменить на ? :
Ничто из вышеперечисленного не работает. Является ли это возможным?
Это довольно сложно, но может быть обходной путь. Измените все пробелы в вашем заголовке на неразрывные пробелы . Затем поместите пробелы там, где вы хотите разрывы строк. Вам также может понадобиться добавить несколько символов перед пробелом (перевод строки).Это так просто, что вы ударите себя . просто нажмите Enter!
Firefox вообще не будет отображать многострочные всплывающие подсказки - он заменит новые строки ничем.
Этот ответ устарел, Firefox делает дисплей новой строки в заголовках сейчас (я использую V25). Это работает с \n , \u000A и \x0A . @Halcyon, просто чтобы уточнить для других читателей, приведенные выше три кода, похоже, не являются HTML. Они больше похожи на escape-последовательности, полученные из языка Си. @ Сэм, я не понимаю, что ты имеешь в виду под этим. \x0A (байт) - это код символа, соответствующий новой строке. То же самое для \u000A (Unicode). \n также перевод строки. @Halcyon, я попытался вставить эти escape-последовательности в title атрибуты в Firefox и Chrome, и они просто были представлены буквально во всплывающей подсказке. Впоследствии я понял, что вы, вероятно, используете этот синтаксис как способ сообщить, какие символы (не escape-последовательности) следует использовать. Мой комментарий предназначен для того, чтобы сэкономить время других людей, предупредив их, чтобы они не пытались поместить ваши escape-последовательности в их HTML, чтобы они не теряли время, как я. @Tarquin Они не работают в HTML, они просто работают в двойных кавычках PHP, потому что это особенность двойных кавычек PHP. это не поддерживается Chrome, но для Firefox отлично!Попробуйте персонаж 10. Хотя он не будет работать в Firefox. :(
Обновить:
+1. Если вы решите использовать плагин jQuery, для оптимальной доступности он должен прочитать его содержимое из атрибута title и заменить произвольный невидимый символ переводом строки во время выполнения. +1. Интересные вещи. Есть еще проблема, когда некоторые UA убирают название, когда оно появляется - FF2, насколько я помню, но сейчас это не проблема. Я не мог получить разрывы строк для работы в IE11 в элементе SVG <title> . Кто-нибудь имел больше успеха с этим? Пробовал выше / ниже упомянуть кодовые символы, ни один, кажется, не работает.Работает во всех из них .
Первый способ (разрыв строк в коде) кажется более простым, но он не подходит для автоформатирования программ js-кода. @matty Не уверен, что я вас понимаю - правильная вещь, которую нужно использовать, - это Unix LF (который является стандартным переводом строки между протоколами и инструментами), CR использовался только старыми компьютерами Mac (и другими неясными платформами) и кажется неуместным.Также стоит упомянуть, если вы устанавливаете атрибут title с помощью Javascript следующим образом:
Это не сработает. Вы должны заменить это десятичное ASCII 10 на шестнадцатеричное A ASCII таким образом, чтобы оно экранировалось с помощью Javascript. Как это:
divElement.setAttribute("title", "Line one\x0ALine two");
@MaxNanasy Согласны, и они эквивалентны (в \n любом случае означает код символа 10)Это работает в IE и является правильным в соответствии со спецификацией HTML5 для атрибута title .
Если вы используете jQuery:
протестировано в IE-9: работает.
Работал в MVC 3 Пример: @ Html.DropDownList ("RegId", null, "Select Region", newдемонстрация
HTML используется:
Самый современный ответ и прекрасно работает на Firefox. Спасибо.Я не верю, что это так. В любом случае Firefox 2 обрезает длинные заголовки ссылок, и их действительно следует использовать только для передачи небольшого объема справочного текста. Если вам нужно больше пояснительного текста, я бы предположил, что он принадлежит абзацу, связанному со ссылкой. Затем можно добавить код JavaScript всплывающей подсказки, чтобы скрыть эти абзацы и отображать их как всплывающие подсказки при наведении курсора. Это ваш лучший выбор для того, чтобы заставить его работать кросс-браузерную IMO.
Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!
Спасибо! Я обязательно научусь отличать широко распространённые слова от узкоспециальных.
Насколько понятно значение слова заточный (прилагательное):
Ассоциации к слову «возврат»
Ассоциации к слову «каретка»
Синонимы к словосочетанию «возврат каретки»
Предложения со словосочетанием «Возврат каретки»
- За дверью нехорошей квартиры – машбюро, орава крашеных блондинок, армия крашеных ногтей; чей-то голос бубнит – постановили, разъяснили, закрыли, вынесли на вид; после каждого предложения – пулемётные очереди, готово, впечатано, утверждаю, дзиньк, возврат каретки.
Сочетаемость слова «возврат»
Сочетаемость слова «каретка»
Понятия со словосочетанием «Возврат каретки»
Возвра́т каре́тки — управляющий символ или механизм, используемый для возвращения позиции устройства к началу строки. Часто обозначается как CR (от англ. carriage return).Афоризмы русских писателей со словом «возврат»
Дополнительно
Значение слова «возврат»
ВОЗВРА́Т , -а, м. 1. Действие по глаг. возвратить—возвращать (в 1 знач.). Возврат имущества. Возврат ссуды. Рукопись подлежит возврату.
Значение слова «каретка»
КАРЕ́ТКА , -и, род. мн. -ток, дат. -ткам, ж. 1. Уменьш. к карета.
Предложения со словосочетанием «Возврат каретки»
За дверью нехорошей квартиры – машбюро, орава крашеных блондинок, армия крашеных ногтей; чей-то голос бубнит – постановили, разъяснили, закрыли, вынесли на вид; после каждого предложения – пулемётные очереди, готово, впечатано, утверждаю, дзиньк, возврат каретки.
Слева торчала, как поднятый вверх палец голосующего на шоссе человека, потускневшая от долгого бездействия рукоятка возврата каретки.
Читайте также: