Қашу сипаты - Escape character

Жылы есептеу және телекоммуникация, an қашу сипаты Бұл кейіпкер таңбалар тізбегіндегі келесі таңбаларға балама интерпретация шақырады. Қашу кейіпкері - бұл нақты жағдай метариптер. Әдетте, бір нәрсенің қашып кету сипаты екендігі немесе болмауы туралы пікір контекстке байланысты.

Анықтама

Қашу кейіпкерінің өзіндік мағынасы болмауы мүмкін, сондықтан барлық қашу дәйектілігі екі немесе одан да көп таңбадан тұрады.

Escape кейіпкерлері синтаксис көптеген бағдарламалау тілдері, деректер форматтары және байланыс протоколдары үшін. Берілгені үшін алфавит қашу кейіпкерінің мақсаты - кейіпкерлер тізбегін бастау (осылайша аталған) қашу реттілігі ), оларды префикстің қашу таңбасынсыз болатын бірдей таңбалардан басқаша түсіндіру керек.

Қашу кезектерінің функцияларына:

  • Құрылғының командалары немесе арнайы мәліметтер сияқты синтаксистік бірлікті кодтау үшін, оларды алфавитпен тікелей көрсету мүмкін емес.
  • Кейіпкерлерді бейнелеу үшін кейіпкерлерге сілтеме жасау, оны ағымдағы контекстте теру мүмкін емес немесе қажетсіз түсіндірмесі болуы мүмкін. Бұл жағдайда қашу реті а диграф қашу кейіпкерінің өзі мен «дәйексөз» кейіпкерінен тұрады.

Басқару сипаты

Әдетте, қашу сипаты (құрылғының) нақты жағдайы емес таңбаларды басқару, және керісінше емес. Егер біз басқару символдарын емес деп анықтасақграфикалық немесе шығыс құрылғысы үшін ерекше мағынасы бар (мысалы, принтер немесе мәтіндік терминал ) содан кейін бұл құрылғыға арналған кез-келген қашу сипаты басқару сипатына ие. Бірақ бағдарламалауда қолданылатын қашу таңбалары (мысалы, кері сызық, «») графикалық болып табылады, сондықтан басқарушы таңбалар емес. Керісінше, көпшілігі (бірақ бәрі емес) ASCII «басқару символдары» оқшауланған кейбір басқару функцияларына ие, сондықтан олар қашып кететін таңбалар емес.

Көптеген бағдарламалау тілдерінде қашу символы басқарушы таңбалар деп аталатын кейбір қашу ретін қалыптастырады. Мысалға, жол үзілісі қашу дәйектілігі бар .

Мысалдар

JavaScript

JavaScript-те (артқа қиғаш сызық):[1][2]

  • ' бір дәйексөз
  • " қос тырнақша
  • кері сызық
  • жаңа жол
  • арбаны қайтару
  • қойынды
  •  Backspace
  • f форма беру
  • v тік қойынды (Internet Explorer 9 және одан асқан тағамдар 'v сияқты 'v тік қойындының орнына ('x0B). Егер кросс-браузердің үйлесімділігі алаңдаушылық туғызса, қолданыңыз x0B орнына v.)
  • нөлдік таңба (U + 0000 NULL) (тек келесі таңба ондық таңба болмаса ғана, әйтпесе бұл сегіздік қашудың реті)
  • xFF он алтылық байтпен ұсынылған таңба «FF»

Назар аударыңыз v және JSON жолдарында қашуға жол берілмейді.

ASCII қашу сипаты

ASCII «қашу» таңбасы (сегіздік: 33, оналтылық: x1B, немесе ^[, немесе, ондық санмен, 27) көптеген басқару құрылғыларында басқару реттілігі немесе қашу реті деп аталатын символдар қатарын бастау үшін қолданылады. Әдетте, қашу символы құрылғыға келесі рәміздер қарапайым таңбалар емес, басқару тізбегі ретінде түсіндірілуі керек екенін ескерту үшін осындай ретпен жіберілді, содан кейін бір немесе бірнеше таңбалар кейбір егжей-тегжейлі әрекеттерді көрсету үшін жүреді, содан кейін құрылғы таңбаларды әдеттегідей түсіндіруге оралады. Мысалы, ^[, содан кейін басып шығарылатын таңбалар [2; 10H, а тудыруы мүмкін ДЕК VT102 оны жылжыту үшін терминал меңзер экранның 2-жолының 10-ұяшығына дейін. Бұл кейінірек ANSI X3.64 стандартында қамтылған ANSI қашу кодтары үшін әзірленді. Шығу таңбасы сонымен қатар әр командалық ретті бастайды Hewlett Packard Принтердің командалық тілі.

«Қашу сипаты» терминіне ерте сілтеме табылған Боб Бемер өзінің жұмыс барысында осы механизмді ойлап тапқан IBM техникалық басылымдары ASCII таңбалар жиынтығы.[3]

The Escape пернесі әдетте компьютердің стандартты пернетақталарында кездеседі. Алайда, әдетте бұл PDA және басқа құрылғыларға арналған пернетақталарда жоқ, негізінен ASCII байланысына арналмаған. ДСК VT220 сериясы негізгі пернетақта үстіндегі пернелердің бірін пайдаланудың орнына арнайы Esc пернесі жоқ бірнеше танымал пернетақталардың бірі болды. Жылы пайдаланушы интерфейстері 1970-80 жж. бұл кілтті қашу символы ретінде пайдалану сирек кездесетін емес, бірақ қазіргі заманғы жұмыс үстелі компьютерлерінде мұндай қолдану тоқтатылады. Кейде кілт анықталды AltMode (балама режим үшін). Бөлінген кілт болмаса да, қашу таңбаларының кодын теру арқылы жасауға болады [ бір уақытта ұстап тұру кезінде Ctrl.

Бағдарламалау және мәліметтер форматтары

Көптеген қазіргі заманғы бағдарламалау тілдері қос тырнақша таңбасын көрсетіңіз (") сияқты бөлгіш үшін жол сөзбе-сөз. The кері сызық () қашу таңбасы, әдетте, жолға енгізілген қос тырнақша таңбасының мағынасын өзгерту жолымен, сөз тізбегіне қос тырнақшаларды қосудың екі әдісін ұсынады (" болады ") немесе таңбалар тізбегінің мағынасын өзгерту арқылы қос тырнақшаның он алтылық мәнін қосады (x22 болады ").

C, C ++, Java, және Рубин барлығы дәл сол екі кері бұрылыс стиліне мүмкіндік береді. The PostScript тіл және Microsoft Мәтіннің бай форматы сондай-ақ артқа жылжудың қашуын қолданыңыз. The дәйексөз-басып шығаруға болады кодтау пайдаланылады тең белгісі қашу сипаты ретінде.

URL мекен-жайы және URI пайдалану % -қашып кетеді ерекше мағынасы бар таңбалардан, мысалы, ASCII емес таңбалардан дәйексөз келтіру. The амперсанд (&) кейіпкерді қашу кейіпкері ретінде қарастыруға болады SGML сияқты алынған форматтар HTML және XML.

Кейбір бағдарламалау тілдері арнайы таңбаларды литаль түрінде бейнелеудің басқа жолдарын ұсынады, оларға қашу таңбасын қажет етпейді (мысалы, қараңыз) бөлгіш соқтығысу ).

Байланыс хаттамалары

The Нүктеден нүктеге дейінгі хаттама (PPP) қолданады 0x7D октет (175немесе ASCII: }) қашу сипаты ретінде. Октет бірден болуы керек XORed арқылы 0x20 жоғары деңгейдегі хаттамаға жіберілмес бұрын. Бұл екеуіне де қатысты 0x7D өзі және басқару сипаты 0x7E (бұл кадрдың басы мен соңын белгілеу үшін PPP-де қолданылады), егер бұл сегіздіктерді PPP-мен қоршалған жоғары деңгейлі протоколмен беру қажет болса, сонымен қатар сілтеме орнатылған кезде келісілген басқа октеттер. Яғни, жоғары деңгейдегі хаттама жібергісі келгенде 0x7D, ол ретпен беріледі 0x7D 0x5D, және 0x7E ретінде беріледі 0x7D 0x5E.

Борн қабығы

Жылы Борн қабығы (sh), жұлдызша (*) және сұрақ белгісі (?) таңбалар таңбалар арқылы кеңейтілген глобус. Алдыңғы қашу сипаты болмаса, ан * ішіндегі барлық файлдардың атына дейін кеңейеді жұмыс каталогы нүктеден басталмайды егер және егер болса мұндай файлдар бар, әйтпесе * кеңейтілмеген болып қалады. Сөзбе-сөз «*» деп аталатын файлға сілтеме жасау үшін қабықшаға осылайша түсіндірмеу керек, алдын-ала көлбеу сызықпен (). Бұл жұлдызшаның интерпретациясын өзгертеді (*). Салыстыру:

 
рм * # ағымдағы каталогтағы барлық файлдарды жою

rm *   # * деп аталатын файлды жою

Windows командалық шақыруы

The Windows командалық жолындағы интерпретатор қолданады каретка таңба (^) ерекше мағынаға ие сақталған таңбалардан қашу (атап айтқанда: &, |, (, ), <, >, ^).[4] The DOS командалық жолындағы интерпретатор ол ұқсас синтаксисті қолдайтынымен, оны қолдамайды.

Мысалы, Windows пәрмен жолында бұл синтаксистік қатеге әкеледі.

жаңғырық <сәлем әлемі>

бұл жолды шығарады: <сәлем әлемі>

жаңғырық ^<Сәлем Әлем^>

Windows PowerShell

Жылы Windows, артқы сызық жол бөлгіш ретінде қолданылады; сондықтан оны әдетте қашу сипаты ретінде пайдалану мүмкін емес. PowerShell қолданады рюкзит[5] (`) орнына.

Мысалы, келесі пәрмен:

жаңғырық «» tFirst line`nNew line «

Шығарылым:

        Бірінші жол
Жаңа жол

Басқалар

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «JavaScript таңбаларынан қашу реті · Mathias Bynens». Mathiasbynens.be. Алынған 2014-06-30.
  2. ^ «Арнайы таңбалар (JavaScript)». Msdn.microsoft.com. 2014-06-20. Алынған 2014-06-30.
  3. ^ Бемер, Боб. «Боб Бемер ESCAPE реттілігі мен кілтін қалай ойлап тапты». www.bobbemer.com. Алынған 22 наурыз 2018.
  4. ^ Тим Хилл (1998). «Windows NT командалық қабығы». MacMillan техникалық баспа. Алынған 2010-01-13.
  5. ^ «кейіпкерлер туралы_қуыс_». Msdn.microsoft.com. 2014-05-08. Архивтелген түпнұсқа 2016-11-25. Алынған 2016-11-24.

Сыртқы сілтемелер

Бұл мақала құрамына кіредікөпшілікке арналған материал бастап Жалпы қызметтерді басқару құжат: «1037C Федералдық Стандарт».