Кіріспе
Компьютерлік техникада "#!" символы қолданылады. Компьютерлік техникада шебанг – бұл нөмір белгісі (#) мен сұрақ белгісінен (!) тұратын символдар тізбегі. Оны "шарп экскламейшн", "ша банг", "хашбанг", "паунд банг" немесе "хаш плинг" деп те атайды. Егер шебангы бар мәтін файлы Unix сияқты операциялық жүйеде орындалатын файл ретінде пайдаланылса, бағдарлама жүктеу механизмі файлдың бастапқы жолының қалған бөлігін интерпретатор нұсқауы ретінде талдайды. Жүктеуші көрсетілген интерпретатор бағдарламасын іске қосады, оған скриптті іске қосуға тырысқанда бастапқыда қолданылған жолды аргумент ретінде жібереді, соның арқасында бағдарлама файлды деректер кірісі ретінде пайдалана алады. Мысалы, егер скрипт path/to/script жолымен аталса және #!/bin/sh жолынан басталатын болса, онда бағдарлама жүктеушіге /bin/sh бағдарламасын іске қосуға нұсқау беріледі, ал path/to/script бірінші аргумент ретінде беріледі. Интерпретатор әдетте шебанг жолын елемейді, себебі "#" символы көптеген скрипт тілдерінде түсініктеме белгісі болып табылады; кейбір тілдердің интерпретаторлары түсініктемелерді бастау үшін шарп белгісін қолданбаса да, оның мақсатын ескере отырып, шебанг жолын елеуі мүмкін.
In computing, a shebang is the character sequence consisting of the characters number sign and exclamation mark at the beginning of a script. It is also called sharp exclamation, sha bang, hashbang, pound bang, or hash pling. When a text file with a shebang is used as if it is an executable in a Unix like operating system, the program loader mechanism parses the rest of the file's initial line as an interpreter directive. The loader executes the specified interpreter program, passing to it as an argument the path that was initially used when attempting to run the script, so that the program may use the file as input data. For example, if a script is named with the path path/to/script, and it starts with the line #!/bin/sh, then the program loader is instructed to run the program /bin/sh, passing path/to/script as the first argument. The shebang line is usually ignored by the interpreter, because the "#" character is a comment marker in many scripting languages; some language interpreters that do not use the hash mark to begin comments still may ignore the shebang line in recognition of its purpose.
Жақсы жақтары
Файл кеңейтулері мен оларды ашуға арналған бағдарламалар арасындағы жаһандық тізімдерді пайдаланумен салыстырғанда, интерпретатор директивасы әдісі пайдаланушыларға жаһандық жүйе деңгейінде белгілі емес және әкімшілік құқықтары қажет емес интерпретаторларды қолдануға мүмкіндік береді. Бұл сондай-ақ, файл кеңейтуінің атау кеңістігін артық жүктеместен (бір файл кеңейтуі бірнеше файл түрін білдіргенде) нақты интерпретаторды таңдауға және басқа бағдарламалардың шақыру синтаксисін өзгертпей, скрипт іске асыру тілін өзгертуге мүмкіндік береді. Скриптті шақырушыларға оның іске асыру тілін білу қажет емес, өйткені скрипт өзі қолданылатын интерпретаторды көрсетуге жауапты.
Сиқырлы сан
Шебанг – бұл орындалатын файлдағы сиқырлы санның адам оқи алатын мысалы, ал сиқырлы байт тізбегі – бұл ASCII кодировкасында екі таңбалы түрде жазылған . Бұл сиқырлы санды "exec" функцияларының тобы анықтайды, олар файлдың скрипт немесе орындалатын бинарлық файл екенін білдіреді. Шебангтың болуы көрсетілген орындалатын файлдың іске қосылуына себеп болады, әдетте бұл скрипт тіліне арналған интерпретатор болады. Кейбір ескі Unix нұсқаларында шебангтан кейін бос орын мен қисық сызық / болуы керек деген пікір бар, бірақ бұл рас емес сияқты.
Этимология
Интерпретатор директивасымен басталатын орындалатын файл жай ғана скрипт деп аталады, көбінесе ол қолданылатын интерпретатордың атауымен немесе жалпы түрімен беріледі. Ерекше екі таңбасы үшін "shebang" атауы, "SHArp bang" немесе "haSH bang" сөздерінің шамалы қысқартылуынан туындаған болуы мүмкін, олар Unix жүйесіндегі осы белгілердің екі кең таралған атауын көрсетеді. "Shebang" сөзіндегі "sh" әрпінің шығу тегі туралы тағы бір теория, оның әдетте shebang арқылы шақырылатын "sh" қабықшасынан (shell) алынғанымен байланысты. Бұл қолданыс 1989 жылдың желтоқсанында және, мүмкін, одан да ертерек пайда болған.
Тарих
Шебангты Деннис Ричи Bell Laboratories-те 7-ші және 8-ші басылымдар арасында енгізді. Ол сондай-ақ Берклидің Компьютерлік ғылым зерттеулерінен шыққан BSD нұсқаларына да қосылды (2.8BSD-де болды және 4.2BSD-де әдепкі бойынша іске қосылды). AT&T Bell Laboratories Edition 8 Unix және одан кейінгі нұсқалары көпшілікке жарияланбағандықтан, бұл мүмкіндіктің алғашқы кеңінен танымал болған түрі BSD-де пайда болды. 1979 жылғы Unix 7-ші нұсқасының құжаттамасында интерпретатор директивасының болмауы, бірақ қабықша скрипттерін қолдау нақты көрінеді. Онда Bourne қабықшасының мүмкіндігі сипатталған, онда орындауға рұқсаты бар файлдар қабықшамен арнайы өңделеді. Қабықша (кейде скрипттегі бастапқы таңбаларға байланысты, мысалы ":" немесе "#") файлдағы командаларды түсіндіріп, орындау үшін қосалқы қабықшаны іске қосады. Осы модельде скрипттер тек Bourne қабықшасы ішінде шақырылғанда ғана басқа командалар сияқты жұмыс істейді. Операциялық жүйенің өзінің exec жүйелік шақыруы арқылы мұндай файлды тікелей орындауға тырысу сәтсіз аяқталады, бұл скрипттердің жүйелік командалар сияқты біркелкі жұмыс істеуіне бөгет жасайды.