НАМЕ
сх - командни интерпретер (схелл)
СИНОПСИС
сх -/ + аЦефнувкИимксВЕбц -о лонгнаме -речи циљ …
ОПИС
Сх је стандардни командни тумач за систем. Тренутна верзијасх је у процесу промјене како би се ускладио саПОСИКС 1003.2 и 1003.2а спецификације за љуску. Ова верзија има мноштво функција које чине да је у неким погледима слична Корн схелл-у, али није клон Корн схелл-а (види ксх (1)). Само функције означене од странеПОСИКС плус неколико Беркелеи екстензија, уграђени су у ову шкољку. ОчекујемоПОСИКС усклађеност према времену 4.4 БСД је пуштен. Ова ман-страница није намењена да буде туторијал или потпуна спецификација схелл-а.
Преглед
Схелл је команда која чита линије из датотеке или терминала, тумачи их и обично извршава друге команде. То је програм који се покреће када се корисник пријављује у систем (иако корисник може изабрати другу љуску са командом цхсх (1)). Шупљина примењује језик који има конструкције контроле протока, макро објекат који пружа разне функције поред складиштења података, заједно са уграђеним историјским могућностима и могућностима за уређивање линија. Укључује многе значајке за помоћ интерактивној употреби и има предност да је интерпретативни језик заједнички и за интерактивну и неинтерактивну употребу (схелл скрипте). То значи да се команде могу директно куцати на покренуту шкољку или се могу ставити у датотеку и фајл може директно извршити схелл.
Позивање
Ако нема аргума и ако је стандардни улаз љуске повезан са терминалом (или ако је -изастава је постављена), и -ц опција није присутна, схелл се сматра интерактивном шкољком. Интерактивна љуска генерално подстиче пре сваке наредбе и другачије управља програмским и управљачким грешкама (као што је описано у наставку). Када први пут започне, схелл проверава аргумент 0, а ако почиње са дасх-ом, схелл се такође сматра шифром за пријављивање. То обично ради аутоматски од стране система када се корисник први пут пријављује. Логичка шифра најпре чита команде из датотека / етц / профиле и .профиле ако постоје. Ако је варијабла околинеЕНВ је подешен на улазу у љуску или је постављен у .профиле шифре за пријављивање, схелл затим чита команде из датотеке назване уЕНВЗбог тога би корисник требао поставити команде које треба извршити само у вријеме пријављивања у .профиле датотеку, као и команде које се извршавају за сваку схелл унутарЕНВ филе. Да поставитеЕНВ промените у неку датотеку, поставите следећу линију у вашу .профиле вашег кућног директоријума
ЕНВ = $ ХОМЕ / .схинит; извоз ЕНВ
замењујући `` .схинит '' било које име датотеке које желите. ОдЕНВ датотека се чита за свако позивање љуске, укључујући љуске и неинтерактивне љуске, следећа парадигма је корисна за ограничавање команди уЕНВ датотеку за интерактивне позиве. Ставите команде у "случај" и "есац" испод (ове наредбе су описане касније):
случај $ - у * и *)
# команде само за интерактивну употребу
…
есац
Ако су аргументи командне линије поред опција били прецизирани, онда схелл описује први аргумент као име датотеке за читање команди (схелл скрипту), а преостали аргументи су постављени као позицијски параметри схелл ($ 1 , $ 2, итд.). У супротном, схелл прочита команде са свог стандардног уноса.
Обрада листе аргумената
Све опције са једним словом имају одговарајуће име које се може користити као аргумент за -о опција. Комплет -о име се налази поред опције за једно слово у опису испод. Подешавање цртице `` - '' укључује опцију, а коришћење плус-а + '+' онемогућава опцију. Следеће опције могу се подесити из командне линије или са постављеним (1) уграђеним (описаним касније).
-а аллекпорт
Извозите све променљиве додијељене. (УНИМПЛЕМЕНТЕД за 4.4алпха)
-ц
Прочитајте команде из командне линије. Нема никаквих команди са стандардног уноса.
-Ц ноцлоббер
Немојте преписивати постојеће датотеке са ``> '' (УНИМПЛЕМЕНТЕД за 4.4алпха)
-е еррекит
Ако није интерактиван, одмах изађите ако нека неизвршена команда не успије. Излазни статус команде се сматра експлицитно тестираним ако се команда користи за контролуако елифвхиле илисве док или ако је команда леви ручни операнд оператора `` && '' или `` || ''.
-ф ноглоб
Онемогући проширење путање.
-н ноекец
Ако нису интерактивни, прочитајте команде, али их не извршавајте. Ово је корисно за проверу синтаксе скриптова.
-у ноунсет
Напишите поруку стандардној грешци када покушате да проширите променљиву која није постављена, а ако схелл није интерактиван, изађите одмах. (УНИМПЛЕМЕНТЕД за 4.4алпха)
-в вербосе
Шукла уписује свој унос у стандардну грешку док се чита. Корисно за дебаговање.
-Икс ктраце
Напишите сваку команду на стандардну грешку (претходи '+' прије него што се изврши. Корисно за дебаговање.
-к тихи профил
Ако -в или -Икс опције су постављене, не примењујте их приликом читања иницијализацијских датотека, то су / етц / профиле .профиле и датотека коју је одредиоЕНВ варијабле околине.
-И игнорееоф
Игноре ЕОФ-а са инпута када су интерактивни.
-и интерактивни
Приближите љуску да се понаша интерактивно.
-м монитор
Укључите контролу над радом (аутоматски се подешава када је интерактиван).
-с стдин
Прочитајте команде са стандардног уноса (аутоматски се подешава ако нису присутни аргументи датотеке). Ова опција нема ефекта када је подешено након што је схелл већ почела да ради (тј. Са сетом (1)).
-В ви
Омогућите уграђени ви (1) едитор наредбену линију (онемогућава -Е ако је постављено).
-Е емацс
Омогућите уграђени емацс (1) едитор командне линије (онемогућава -В ако је постављено).
-б обавестити
Омогућите асинхроно обавештење о завршетку задатка посла. (УНИМПЛЕМЕНТЕД за 4.4алпха)
Лексичка структура
Схема чита улаз помоћу линија из датотеке и прелази на речи на простору (празнине и табови), а код одређених секвенца знакова који су посебни за љуску под називом `` оператери '' Постоје две врсте оператора: контролне операторе и оператере за преусмеравање (њихово значење се разматра касније). Следи листа оператора:
"Оператори контроле:"
& && ( ) ; ;; | || "Оператор преусмеравања:" < > >| << >> <& >& <<- <>
Цитирање се користи да уклони посебно значење одређених знакова или речи у схелл, као што су оператери, пространи простор или кључне речи. Постоје три врсте цитирања: упарени појединачни цитати, упарени двоструки цитати и обрнути пошевници. Основа бацксласх-а чува дословно значење следећег карактера, изузев Ак линије. Скрајшана пошевница пред Ак ново линијо се обравнава кот надаљевање линије. Приложени знакови у појединачним цитатима чувају дословно значење свих знакова (изузев појединачних цитата, што онемогућава стављање појединачних цитата у низу са једним цитатом). Затворени знакови унутар двоструких цитата чувају дословно значење свих знакова осим долазних ($) и (бацксласх) (). Окосница са двоструким наводницима је историјски чудна и служи за навођење само следећих знакова: $ ` Иначе остаје дословно. Резервисане речи су речи које имају посебну значење за љуску и препознате су на почетку линије и након оператора контроле. Следеће су резервисане речи: ! Таелиф Та фи Та док је случај Та остало Таза Та онда је Та {Та} до Таурадио је Та до Та ако Та есац Њихово значење се касније разматра. Алиас је име и одговарајућа вриједност која је постављена помоћу алијансе (1) уграђене команде. Кад год се може појавити резервирана реч (види горе), и након провере резервисаних ријечи, схелл провјерава ријеч да види да ли се поклапа са псеудонимом. Уколико то уради, он га замењује у улазном току са својом вриједношћу. На примјер, ако постоји псеудоним назван `` лф '' са вриједношћу `` лс -Ф '', онда је унос: Ако је фообар би постао лс -Ф фообар Алиасес обезбеђују погодан начин за наивне кориснике да креирају скрипте за наредбе без потребе да науче како да креирају функције са аргументима. Такође се могу користити за креирање лексички нејасног кода. Ова употреба је обесхрабрена. Шруна тумачи речи које читају према језику, чија је спецификација изван оквира ове манне странице (погледајте БНФ уПОСИКС 1003.2 документ). У суштини, ипак се чита линија и ако прва реч линије (или након оператора контроле) није резервирана реч, онда је схелл препознала једноставну команду. У супротном, можда је препозната комплексна команда или неки други посебан конструкт. Ако је препозната једноставна команда, схелл извршава следеће акције: Водеће речи обрасца `` име = вриједност '' су уклоњене и додијељене окружењу једноставне наредбе. Оператори преусмеравања и њихови аргументи (као што је описано у наставку) се уклањају и чувају за обраду. Преостале речи проширене су како је описано у одељку под називом `` Проширења '', а прва преостала реч се сматра командом и команда се налази. Преостале речи се сматрају аргументима команде. Ако није произвело ниједну командну ознаку, тада одредбе варијабли `` наме = валуе '' препознате у ставку 1 утичу на тренутну љуску. Преусмеравање се врши како је описано у следећем одељку. Преусмерења Преусмеравања се користе за промену где команда чита свој унос или шаље свој излаз. Генерално, редирекције се отварају, затварају или дуплирају постојеће референце на датотеку. Укупан формат који се користи за преусмеравање је: н редир-оп фајл где редир-оп је један од оператера за преусмеравање поменутих раније. Следи листа могућих преусмеравања. Бк н је необавезан број, као у `3 '(не` Бк 3' који се односи на дескриптор датотеке. н> датотеку Преусмери стандардни излаз (или н) у датотеку. н> | филе Исто, али преокрените -Ц опција. н >> фајл Додајте стандардни излаз (или н) у датотеку. н <датотека Преусмери стандардни унос (или н) из датотеке. н1 <& н2 Дупликат стандардног уноса (или н1) из дескриптора датотеке н2. н <& Затвори стандардни унос (или н). н1> & н2 Дупли стандардни излаз (или н1) из н2. н> & Затвори стандардни излаз (или н). н <> фајл Отворите датотеку за читање и писање на стандардном улазу (или н). Следеће преусмеравање се често назива "овде-документ" н << раздјелник овде-доц-текст … раздјелник Сва текстова на редоследу до раздјелника се чува и ставља на располагање команди на стандардном улазу, или дескриптор датотеке н ако је наведен.Ако се цитира раздјелник који је наведен на почетној линији, овдје-доц-текст се третира буквално, иначе је текст подвучен експанзији параметара, супституцији наредбе и аритметичком експанзији (као што је описано у одјељку "Проширења") 'Ако је оператер `` << -' 'уместо `` <<' ', онда се водећи табови у овде-доц-тексту уклањају. Постоје три врсте команди: функције схелл-а, уграђене команде и нормални програми - и наредба се тражи (по имену) у том редоследу. Сваки од њих се извршава на други начин. Када се изврши шоља функција, сви параметри позиционирања схелл-а (осим $ 0, који остаје непромењен) постављени су на аргументе функције схелл-а. Варијабле које се експлицитно стављају у окружење команде (постављањем задатака њима прије назива функције) постају локални за функцију и подешавају се на дате вриједности. Тада се извршава наредба дата у дефиницији функције. Позицијски параметри се враћају на њихове првобитне вриједности када команда заврши. Ово се све дешава унутар тренутне љуске. Изградња Схелл-а се извршава интерно у школу, без пораста новог процеса. У супротном, ако се командно име не поклапа са функцијом или је изграђено, команда се тражи као нормалан програм у датотечном систему (као што је описано у следећем одељку). Када се изврши нормалан програм, схелл покреће програм, преноси аргументе и окружење програму. Ако програм није нормална извршна датотека (тј. Ако не почиње са "магичним бројем" чијиАСЦИИ представљање је "#!", тако да екецве (2) враћа Ер ЕНОЕКСЕЦ тада) схелл ће тумачити програм у подскупу. Дјечија граната ће се поново иницијализирати у овом случају, тако да ће ефекат бити као да је нова љуска била позвана да се носи са ад-хоц скриптом, осим што ће локација хашних команди лоцираних у родитељској школи памтити од стране дете. Имајте на уму да се претходне верзије овог документа и изворни код сасвим погрешно и спорадично односе на схелл скрипту без магичног броја као "поступак оквира". Приликом лоцирања команде, схелл прво изгледа да види да ли има ту функцију схелл-а. Онда потражује изграђену команду под тим именом. Ако се не пронађе изграђена команда, дешава се једна од две ствари: Имена команди која садрже косу се једноставно извршавају без обављања било каквих претрага. Шкабле претражује сваки уносПАТХ заузврат за команду. ВриједностПАТХваријабла би требала бити серија уноса раздвојених колонама. Свака ставка се састоји од имена директоријума. Садашњи директоријум може бити имплицитно назначен називом празног директоријума, или експлицитно у једном периоду. Цомманд Екит Статус Свака команда има статус изласка који може утицати на понашање других команди схелл-а. Парадигма је да команда излази са нула за нормално или успјешно, а не нула за неуспјех, грешку или лажну индикацију. На страници човјека за сваку наредбу треба навести различите излазне шифре и оно што подразумијевају. Поред тога, уграђене команде враћају излазне кодове, као и извршену функцију схелл-а. Комплексне команде су комбинације једноставних команди са управљачким оператерима или резервисаним речима, заједно стварајући већу сложену команду. Опћенито, команда је једна од следећих: Осим ако није другачије назначено, статус излаза команде је задња једноставна команда коју извршава команда. Цевовод је низ једне или више команди одвојених од контролног оператера. Стандардни излаз свих изузев последње команде је повезан са стандардним улазом наредне наредбе. Стандардни излаз последње команде наслијеђен је из љуске, као и обично. Формат за гасовод је: ! цомманд1 | цомманд2 … Стандардни излаз команде1 је повезан са стандардним улазом команде2. Стандардни улаз, стандардни излаз или обе команде се сматрају додељеним од стране цевовода пре него што се преусмеравање одреди оператерима за преусмеравање који су део команде. Ако гасовод није у позадини (о чему се касније говори), схелл чека све команде да се заврше. Ако резервисана реч! не претходе цевоводу, статус изласка је статус излаза последње команде која је наведена у плиноводу. У супротном, статус изласка је логична НОТ статуса изласка последње команде. То јест, ако последња команда врати нулу, статус излазног стања је 1; ако последња команда враћа више од нуле, статус излаза је нула. С обзиром на то да је додељивање цевовода стандардним улазним или стандардним излазом или оба прије преусмеравања, може се промијенити преусмеравањем. На пример: $ цомманд1 2> & 1 | цомманд2 шаље и стандардни излаз и стандардну грешку команде1 на стандардни унос команде2. А; или Имајте на уму да, за разлику од неких других граната, сваки процес у цјевоводу је дијете љуске која се позива (осим ако је она изграђена, у том случају она се извршава у тренутној школи - али сваки ефекат који он има на окружење је обрисан). Ако команду прекине контролни оператор амперсанд (&), схелл извршава команду асинхроно - тј., Схелл не чека да команда заврши пре него што изврши следећу наредбу. Формат за покретање наредбе у позадини је: цомманд1 & цомманд2 & … Ако схелл није интерактиван, стандардни унос асинхроних команди је подешен на / дев / нулл Листа је низ нула или више команди одвојених новим линијама, тачкама зарезима или амперсандима, а опционо прекинута од стране једног од ова три знака. Команде на листи извршавају се по редоследу који су написани. Ако команду следи амперсанд, схелл започиње команду и одмах настави на следећу наредбу; у супротном чека да команда престане пре него што пређе на следећу. `` && '' и `` || '' су АНД-ОР листе оператора. `` && '' извршава прву команду, а затим извршава другу команду ако је излазни статус прве команде нула. `` || '' је сличан, али извршава другу наредбу ако је статус излаза прве наредбе нула. `` && '' и `` || '' имају исти приоритет. Синтакса команде иф је ако је листа затим попис елиф листа онда попису … другу листу фи Синтакса команде вхиле је док лист уради списак Готово Две листе се извршавају више пута док је статус излаза прве листе нула. Све док команда није слична, али има реч све док не дође време, што га понавља док статус излаза прве листе није нула. Синтакса команде за за променљиву ријеч … уради списак Готово Речи су проширене, а затим се листа извршава више пута са променљивом која је постављена на сваку реч. учинити и урадити може се заменити са `` {'' и ``} '' Синтакса команде бреак и настави је бреак нум настави број Пауза прекида бројну унутрашњу за или током петље. Наставите са следећом итерацијом унутрашње петље. Оне се имплементирају као уграђене команде. Синтакса команде случаја је случај реч у образац) ;; … есац Шаблон може заправо бити један или више шаблона (погледајте шаблоне Схелл описане касније), одвојене знаком `` '. Команде се могу груписати писањем или (листа) или { листа; Први од њих извршава команде у подсклопу. Команде уграђене у групу (листе) неће утицати на тренутну шкољку. Други образац не крије другу шкољку, тако да је мало ефикаснији. Груписање команди на овај начин омогућава вам да преусмерите свој излаз као да су један програм: {принтф хелло; принтф ворлд н ";}> поздрав Функције Синтакса дефиниције функције је име () команду Дефиниција функције је изведбени израз; када се изврши, инсталира функцију под именом и враћа статус излаза нуле. Команда је обично листа смештена између `` {'' и ``} '' Варијабле се могу прогласити локалним функцијама помоћу локалне команде. Ово би требало да се појави као први израз функције, а синтакса је локална променљива | - … Локално се имплементира као изграђена команда. Када је варијабла лоцирана, она наслијеђује почетну вриједност и извезује и реадонли заставице из варијабле са истим именом у околини, ако их има. У супротном, варијабла је у почетку неисправна. Шкорпија користи динамички опсег, тако да ако промените к локалну функцију ф, која затим назива функцију г, референце на варијаблу к направљену унутар г ће се односити на променљиву к декларисану унутар ф, а не на глобалну варијаблу названу к . Једини посебан параметар који се може направити локално је ,, `` `` `` `` `` `` `` `` `` локално за сваку опцију схелл-а која се мења преко команде која се налази унутар функције која се враћа на првобитне вриједности када се функција враћа. Синтакса команде за повратак је ретурн екитстатус Он прекида функцију која се тренутно извршава. Повратак се имплементира као изграђена команда. Шака држи скуп параметара. Параметар означен називом се назива променљива. Приликом покретања, љуска претвара све променљиве окружења у варијабле љуске. Нове варијабле се могу поставити користећи образац име = вредност Варијабле постављене од стране корисника морају имати име које се састоји искључиво од абецеда, бројева и подчртава - први не сме бити нумерички. Параметар се може означити и бројем или посебним карактером као што је објашњено у наставку. Позицијски параметар је параметар означен бројем (н> 0). Шурила их првобитно поставља на вриједности аргумената командне линије које слиједе име схелл скрипте. Сет (1) уграђен може се користити и за подешавање или ресетовање. Посебан параметар је параметар означен једним од следећих специјалних знакова. Вредност параметра је наведена поред њеног карактера. * Проширује се на позицијске параметре, почевши од једног. Када се експанзија одвија у двоструком цитираном низу, она се шири на једно поље са вриједношћу сваког параметра одвојеним првим карактеромИФС променљива или а @ Проширује се на позицијске параметре, почевши од једног.Када се експанзија јавља у двоструким наводницима, сваки позицијски параметар се шири као посебан аргумент. Ако не постоје параметри позиције, експанзија @ генерира нулте аргументе, чак и када је @ двапут цитиран. Оно што у основи значи, на пример, ако је $ 1 "абц" и $ 2 је "деф гхи" онда Кк $ @ проширује два аргумента: абц деф гхи # Проширује се на број позицијских параметара. ? Проширује се у статус изласка најновијег гасовода. - (Хипхен.) Проширује се у тренутне заставе опција (називи опција са једним словом укрштени у низ) као што је наведено у инвокацији, постављена уграђена команда или имплицитно од стране љуске. $ Проширује се у ИД процеса позиване љуске. Поддршка задржава исту вриједност $ као родитеља. ! Проширује се у ИД процеса најновије команде позадине извршене из тренутне љуске. За гасовод, ИД процеса је онај задње команде у плиноводу. 0 (Зеро.) Проширује се на име схелл или скрипти. Проширење ријечи Ова клаузула описује разне експанзије које се изводе на ријечима. Нису све експанзије обављене на свакој речи, како је објашњено касније. Тилде експанзије, експанзије параметара, замене команди, аритметичке експанзије и уклањање цитата који се јављају унутар једне речи проширују се на једно поље. То је само раздвајање поља или проширење путање које може креирати више поља из једне ријечи. Једини изузетак од овог правила је проширење специјалног параметра @ унутар двоструких цитата, као што је горе описано. Редослед проширења речи је: Проширење тилде, проширење параметара, замена команди, аритметичка експанзија (сви се истовремено појављују). Раздвајање поља врши се на пољима која се генеришу кораком (1) осим ако нијеИФС променљива је нула. Проширење путање (осим ако је постављено -ф је на снази). Куоте Ремовал. Знак $ се користи да уведе проширење параметара, супституцију наредбе или аритметичку процену. Ријеч која почиње са некитованим знаком тилде (~) подлеже ширењу тилде. Сви ликови до косине (/) или на крају речи третирају се као корисничко име и замењују се са кућним директоријумом корисника. Ако корисничко име недостаје (као у ~ / фообар), тилда се замењује вриједношћу КУЋА променљива (кућни директоријум тренутног корисника). Формат за ширење параметара је следећи: $ {израз} где се израз састоји од свих знакова све док се не уклапа са ``} '' било којим ``} '' есцапед са косом или са цитираним низом, а знакови у уграђеним аритметичким експанзијама, замјенама команди и променљивим проширењима се не испитују при одређивању упаривање ``} '' Најједноставнији облик ширења параметара је: $ {параметар} Вредност, ако постоји, параметра је замењена. Име параметра или симбол може бити затворено у грудима, које су опционалне, осим за параметре позиције са више од једне цифре или када параметар прати знак који се може тумачити као дио имена. Ако се експанзија параметра одвија унутар двоструких цитата: Ширење пута се не врши на резултатима експанзије. Раздвајање поља се не врши на резултатима експанзије, са изузетком @. Поред тога, проширење параметара се може модифицирати помоћу једног од следећих формата. $ {параметар: -ворд} Користите подразумеване вредности. Ако је параметар неискључен или нултан, ширење речи је замењено; у супротном, вредност параметра се замењује. $ {параметар: = реч} Додели подразумеване вредности. Ако је параметар нерешен или нултан, проширење речи додељује се параметру. У свим случајевима коначна вредност параметра је замењена. На овакав начин се могу доделити само варијабле, а не позицијски параметри или специјални параметри. $ {параметар:? речи} Навести грешку ако је Нулл или Унсет. Ако је параметар неискључен или нултан, проширење речи (или порука која је назначила да је неуспјела ако је ријеч испуштена) је уписана у стандардну грешку и схелл излази са нултим излазним статусом. У супротном, вредност параметра је замењена. Интерактивна шкољка не мора излазити. $ {параметар: + реч} Користите алтернативну вредност. Ако је параметар унсет или нулл, нулл је супституисан; у супротном, ширење речи је замењено. У претходно приказаним параметрима, употреба дебелог црева у формату резултира тестом за параметар који је неисправан или нултан; изостављање дебелог црева резултира тестом за параметар који је искључен. $ {# параметар} Стринг Ленгтх. Дужина у карактерима вредности параметра. Следеће четири варијанте ширења параметара омогућавају обраду подстраница. У сваком случају, ознака која одговара образовању (видети Схелл Паттернс), а не као обичан израз, користи се за процену шаблона. Ако је параметар * или @, резултат експанзије није одређен. Укључујући пуну шифру ширине параметара у двоструким наводницима не узрокује следеће четири варијанте симбола узорака, док цитати знакове у грудима има овај ефекат. $ {параметар% ворд} Уклони најмањи Паттерн Суффик. Реч је проширен како би се направио образац. Ширење параметара затим резултира у параметру, при чему је најмањи дио суфикса усклађен са обрисаним образцем. $ {параметар %% реч} Уклоните највећи Паттерн Суффик.Реч је проширен како би се направио образац. Ширење параметара затим резултира у параметру, при чему највећи дио суфикса одговара обрисаном шаблону. $ {параметар # реч} Уклони најмањи шаблон префикса. Реч је проширен како би се направио образац. Ширење параметара затим резултира у параметру, при чему је најмањи део префикса усклађен са обрисаним обрасцем. $ {параметар ## ворд} Уклоните највећи шаблон префикса. Реч је проширен како би се направио образац. Ширење параметара затим резултира у параметру, при чему највећи дио префикса одговара обрисаном шаблону. Командна замена Замјена наредбе омогућава измену излаза команде уместо самог командног имена. Замјена наредбе се јавља када је команда затворена на сљедећи начин: $ (команда) или По `` бацккуотед '' верзију Пц: `цомманд` Шкапа проширује замену наредбе извршавајући команду у окружењу подгрупе и замјењује замјену наредбе с стандардним излазом команде, уклањајући секвенце једног или више Аритметичка експанзија обезбеђује механизам за процену аритметичке експресије и замењујући његову вриједност. Формат аритметичке експанзије је следећи: $ ((израз)) Израз се третира као да је у двоструким цитатима, осим што се двоструки цитат унутар израза не третира посебно. Шкафа проширује све токене у изразу за ширење параметара, замену наредбе и уклањање цитата. Затим, схелл ово третира као аритметички израз и замењује вредност израза. Након експанзије параметара, замене команди и аритметичке експанзије, схелл скенира резултате експанзија и замена које се нису појавиле у двоструким наводницима за поделу поља и могу резултирати више поља. Овој школи третира сваки карактерИФС као раздјелник и користите раздјелнике да бисте подијелили резултате експанзије параметара и замјене команди у поља. Осим ако -ф ознака је постављена, генерисање имена датотеке се врши након што је ријеч о цјепању завршено. Свака реч се посматра као низ образаца, раздвојених косинама. Процес експанзије замењује реч са именима свих постојећих датотека чија се имена могу формирати заменом сваког образца низом који одговара наведеном образцу. Постоје два ограничења: прво, образац не може да се подудара с низом који садржи косу црту, и друго, образац не може да се подудара са низом који почиње са одређеним периодом, осим ако први карактер узорка није период. Следећи одељак описује обрасце који се користе за опцију Патхнаме Екпансион и за случај (1). Узорак састоји се од нормалних знакова, који се подударају и мета-карактера. Метаподаци су ``! '' `` * ''```?' 'И `` ' 'Ови ликови губе своје посебно значење ако се цитирају. Када се изврши команда или варијабилна супституција, а знакови за долар или задње цитате нису двоструки цитирани, вредност варијабле или излаз команде се скенира за ове знакове и они се претварају у мета-карактере. Звездица (`` * '') одговара низу знакова. Знак питања одговара сваком појединачном карактеру. Лева конзола (`` '') уводи карактерну класу. Крај класе карактера означава (`` '') ако недостаје `` '' онда тада `` '' одговара на `` '' умјесто увођење класе знакова. Класа знакова се подудара са било којим од знакова између квадратних заграда. Низ карактера се може одредити помоћу знак минус. Класа карактера може бити употпуњена стварањем узвичног тачке првог карактера класе знакова. Да укључите `` '' у групу знакова, учините да је први знак наведен (након "`! "Ако постоји). Да бисте укључили знак минус, учините га првим или последњим знаком Овај одељак наводи уграђене команде које су уграђене зато што им је потребно извршити неку операцију која се не може извршити посебним процесом. Поред ових, постоји и неколико других команди који могу бити уграђени за ефикасност (нпр. Ецхо 1). : Нула команда која враћа 0 (истиниту) излазну вредност. . филе Команде у наведеној датотеки чита и извршава схелл. алиас име = стринг … Ако име = стринг је специфициран, схелл дефинише алијасу име са вредношћу низ Ако само име је специфициран, вриједност псеудоним име се одштампа. Без аргумената,алиас уграђени штампају имена и вредности свих дефинисаних псеудонима (погледајтеуналиас) бг посао … Наставите са наведеним пословима (или тренутним послом ако ниједан посао не буде дат) у позадини. команда наредба арг … Извршите специфицирану уграђену наредбу. (Ово је корисно када имате функцију схелла са истим именом као и команда буилтин.) цд директоријум Пребаците се на наведени директоријум (подразумевано$ ХОМЕ) Ако је унос заЦДПАТХ појављује се у окружењуцд команду или променљиву схелл-аЦДПАТХ је подешено и име именика не почиње са косом цртицом, а затим из директоријумаЦДПАТХ ће се тражити одређени директориј. Формат офЦДПАТХ је исти као онПАТХ У интерактивној школи,цд наредба ће одштампати име директоријума у којем је заправо прешао ако се то разликује од имена које је корисник дао. То може бити различито јер јеЦДПАТХ коришћен је механизам или је прекорачена симболичка веза. евал низ… Приближите све аргументе са размацима. Затим ре-парсе и изврши наредбу. екец наредба арг … Осим ако команда није изостављена, процес шкољке се замењује наведеним програмом (који мора бити прави програм, а не уграђен или функционалан). Било каква преусмјеравања наекецкоманда је означена као трајна, тако да се не поништавају када јеекец команда завршава. излаз екитстатус Прекините процес шкољке. Ако екитстатус даје се да се користи као статус излаза љуске; у супротном се користи статус излаза претходне команде. извоз име … извоз -п Наведена имена се извозе тако да ће се појавити у окружењу наредних команди. Једини начин да се не извози варијабла је да га унесете. Шоку дозвољава да се вредност променљиве поставља у исто вријеме када се извози писањем извоз име = вредност Без аргумената, команда за извоз наводи имена свих извезених варијабли. Са -стрнаведена опција, излаз ће бити форматиран за неинтерактивну употребу. фц-е уредник први последњи фц -л -нр први последњи фц -с стари = нови први Тхефц уграђене листе или измене и поновно извршавање, команде претходно унете у интерактивни схелл. - уредник Користите уредника којег именује уредник да бисте уредили команде. Низ уредника је командно име, подложно претрази прекоПАТХ променљива. Вредност уФЦЕДИТ варијабла се користи као подразумевана када -е није наведен. АкоФЦЕДИТ је нулта или неусклађена вредност вриједностиЕДИТОР варијабла се користи. АкоЕДИТОР је нулл или унсет, ед (1) се користи као уредник. -л (елл) Наведите команде уместо да позивате уредника на њима. Команде се пишу у секвенци коју означавају први и последњи операнди, као што је погођено -р са сваком командом претходи командни број. -н Склоните командне бројеве приликом листинга са -л. -р Обрнути ред наредјених наредби (са -л или уређивати (без икаквог -л нити -с) -с Поново извршите наредбу без позивања уредника. први последњи Изаберите команде за листањ
Цитирање
Бацксласх
Сингле Куотес
Доубле Куотес
Резервисане ријечи
Алиасес
Команде
Једноставне команде
Претраживање и извршење
Претраживање путева
Комплексне команде
Цевоводи
Команде позадине -
Листе - Генерално говорећи
Оператори листе кратког споја
Контрола протока - ако, док, за случај
Заједнички команде
Варијабле и параметри
Позицијски параметри
Посебни параметри
Проширење Тилде (замена корисничког кућног директоријума)
Ширење параметара
Аритметичка експанзија
Раздвајање бијелог простора (раздвајање поља)
Проширење путање (генерисање имена датотеке)
Схелл Паттернс
Уграђени













