Командата на Линукс удрям еод- съвместим интерпретатор на команден език, който изпълнява команди, четени от стандартния вход или от файл.удрям също така включва полезни функции от обвивките Korn и C (ksh иCSH).
Баш Опции
В допълнение към опциите за обвивка с еднозначно число, документирани в описанието накомплект вградена команда,удрям интерпретира следните опции при извикване:
- -° С низ: Ако-° С опцията е налице, след това командите се четат от низ , Ако има аргументи след низ , те се причисляват към параметрите на позицията, като се започва от$0.
- -i: Ако-i опцията е налице, черупката е интерактивен .
- -l: правяудрям действа като сякаш е била използвана като входна черупка.
- -r: Ако-r вариант е налице, черупката става ограничен.
- -с: Ако-с опцията е налице или ако не останат аргументи след обработката на опциите, тогава командите се четат от стандартния вход. Тази опция позволява да се задават позиционните параметри при извикване на интерактивен корпус.
- -Д: Списък с всички двойки котирани низове, предшествани от тях$ се отпечатва на стандартния изход. Това са струните, които са предмет на езиков превод, когато текущият локал не е такъв° С илиPOSIX, Това предполага -п опция; няма да се изпълняват команди.
- - + 0 shopt_option : shopt_option е една от възможностите за черупки, приети отshopt Вградената. ако shopt_option присъства,-О - определя стойността на тази опция и+ O го отхвърля. ако shopt_option не е предоставена, имената и стойностите на опциите за черупки, приети отshopt се отпечатват на стандартния изход. Ако опцията за извикване е + O, изходът се показва във формат, който може да бъде използван отново като вход.
- --: А-- сигнализира края на опциите и деактивира допълнителната обработка на опциите. Всички аргументи след-- се разглеждат като имена на файлове и аргументи. Аргумент на- е еквивалентно на--.
удрям също интерпретира няколко опции с много знака. Тези опции трябва да се показват в командния ред преди да се разпознаят единичните символи:
- --dump-Po-струни: Еквивалентно на-Д, но изходът е в GNU gettext PO (преносим обект) файлов формат.
- --dump-струни: Еквивалентно на-Д.
- --помогне: Показване на съобщение за използване на стандартен изход и успешно излизане.
- --init-файл: досие и --rcfile досие : Изпълнява команди от досие вместо стандартния личен инициализиращ файл ~ / .Bashrc ако тялото е интерактивно.
- --Влизам: Еквивалентно на-l.
- --noediting: Не използвайте GNUReadline библиотеката да чете командни редове, когато тялото е интерактивно.
- --noprofile: Не четете файла за стартиране на цялата система / И т.н. / профил или някой от личните файлове за инициализация ~ / .Bash_profile , ~ / .Bash_login , или ~ / .Profile , По подразбиране,удрям чете тези файлове, когато бъде извикан като shell за вход.
- --norc: Не четете и не изпълнявайте личния файл за инициализация ~ / .Bashrc ако тялото е интерактивно. Тази опция е включена по подразбиране, ако черупката е извикана катоод.
- --posix: Промяна на поведението наудрям където стандартната операция се различава от стандарт POSIX, за да съответства на стандартния ( posix режим ).
- --ограничен: Обвивката става ограничена.
- --rpm-изисква: Да се създаде списъкът на файловете, които са необходими за изпълнение на скрипта на обвивката. Това означава "-n" и е предмет на същите ограничения като проверката за проверка на грешките при компилирането; Тестовете, тестовете и изхвърлянията не се анализират, затова някои зависимости може да се пропуснат.
- --verbose: Еквивалентно на-V.
- --version: Показване на информацията за версията за този пример отудрям на стандартния изход и успешно излизане.
Аргументи
Ако остават аргументи след обработката на опциите и нито-° С нито на-с опция, първият аргумент се приема, че е името на файл, съдържащ команди на обвивката. ако удрям се използва по този начин,$0 е зададено на името на файла и позиционните параметри са зададени на останалите аргументи.удрям чете и изпълнява команди от този файл; след това излиза.удрямизходният статус е изходното състояние на последната команда, изпълнена в скрипта. Ако не се изпълняват команди, изходният статус е 0. Първо се прави опит за отваряне на файла в текущата директория и, ако не се намери файл, тогава черупката търси директории вPATH за сценария.
призоваване
А входна обвивка е този, чийто първи характер на аргумента нула е a-, или започва с--Влизам опция.
Една интерактивен shell е стартиран без аргументи без опция и без-° С опция, чийто стандартен вход и изход са свързани към терминалите, както е определено от isatty (3), или започва с-i опция.PS1 е зададено и $- включва, ако bash е интерактивен, което позволява скрипт скрипт или стартов файл за тестване на това състояние.
Следващите параграфи описват какудрям изпълнява стартовите му файлове. Ако някой от файловете съществува, но не може да бъде прочетен,удрям докладва грешка. Tildes се разширяват в имената на файловете, както е описано в Tilde Expansion.
Когаудрям се извиква като интерактивна връзка за вход или като неактивна обвивка с--Влизам опцията първо чете и изпълнява команди от файла / И т.н. / профил , ако съществува такъв файл. След като прочетете този файл, той търси ~ / .Bash_profile , ~ / .Bash_login , и ~ / .Profile , в този ред и чете и изпълнява команди от първия, който съществува и е четлив. Най---noprofile може да се използва, когато черупката е започнала да възпрепятства това поведение.
Когато излезе команда за влизане,удрям чете и изпълнява команди от файла ~ / .Bash_logout , ако съществува.
Когато се стартира интерактивен корпус, който не е команда за вход,удрям чете и изпълнява команди от ~ / .Bashrc , ако съществува такъв файл. Това може да бъде възпрепятствано чрез използването на--norc опция. Най---rcfile досие опция ще силаудрям да четат и изпълняват команди от досие вместо ~ / .Bashrc .
Когаудрям се стартира не-интерактивно - например да се стартира скрипт на shell (shell), който търси променливатаBASH_ENV в средата разширява стойността си, ако се появи там, и използва разширената стойност като име на файл за четене и изпълнение.удрям се държи така, сякаш е изпълнена следната команда:
ако -n "$ BASH_ENV"; тогава . "$ BASH_ENV"; Fi
но стойността наPATH променлива не се използва за търсене на името на файла. акоудрям се извиква с иметоод, той се опитва да имитира стартовото поведение на историческите версии наод колкото е възможно по-близо, при спазване на стандарта POSIX. Когато се извиква като интерактивна приставка за вход или не-интерактивна обвивка с--Влизам опцията, първо се опитва да чете и изпълнява команди от / И т.н. / профил и ~ / .Profile , в този ред. Най---noprofile може да се използва, за да се възпрепятства това поведение. Когато се извиква като интерактивна обвивка с името од, удрям търси променливатаENV, разширява стойността си, ако е дефинирана, и използва разширената стойност като име на файл за четене и изпълнение. Тъй като обвивката е извикана катоод не се опитва да чете и изпълнява команди от всички други стартиращи файлове, т.е.--rcfile опцията няма ефект. Неи интерактивен черупка, назована с иметоод не се опитва да чете други стартови файлове. Когато се извиква катоод, удрям навлиза POSIX режим след стартиране на файловете за стартиране. Когаудрям е стартирана POSIX режим, както при--posix опция за командния ред, тя следва POSIX стандарта за стартиращи файлове. В този режим, интерактивните черупки разширяватENV променлива и командите се четат и изпълняват от файла, чието име е разширената стойност. Не се четат други стартови файлове. удрям се опитва да определи кога се управлява от демона на отдалечения корпус, обикновено rshd , ако удрям определя, че се управлява от rshd , чете и изпълнява команди от ~ / .Bashrc , ако този файл съществува и е четлив. Тя няма да направи това, ако бъде извикана катоод, Най---norc може да се използва, за да се възпрепятства това поведение, и--rcfile опцията може да бъде използвана, за да накара друг файл да бъде прочетен, но rshd обикновено не извиква черупката с тези опции или им позволява да бъдат посочени. Ако черупката е стартирана с ефективния идентификатор на потребителя (група), не е равен на идентификационния номер на истинския потребител (група) и-p опцията не се предоставя, не се четат файлове за стартиране, функциите на shell не се наслеждат от околната среда,SHELLOPTS променлива, ако тя се появява в средата, се игнорира и ефективният потребителски идентификатор е зададен на истинското потребителско име. Ако-p опцията се предоставя при призоваване, поведението при стартиране е същото, но ефективният потребителски идентификатор не се нулира. Следните определения се използват в останалата част на този документ: Запазени думи са думи, които имат специално значение за черупката. Следните думи се разпознават като запазени, когато са некотирани и първа дума на проста команда или третата дума на aслучайилиза команда: ! случай да направим elif else esac fi за функция, ако в изберете тогава до докато {} време А проста команда е поредица от допълнителни задачи за променливи, последвани отпразно- разделени думи и пренасочвания и прекратени от a контролен оператор , Първата дума определя командата, която трябва да бъде изпълнена, и се приема като аргумент нула. Останалите думи се предават като аргументи на извиканата команда. Връщащата се стойност на a проста команда е изходният му статус, или 128+ п ако командата се прекратява чрез сигнал п . А тръбопровод е последователност от една или повече команди, разделени от символа|, Форматът за тръбопровод е път -p ! команда | command2 … . Стандартният изход от команда е свързан чрез тръба към стандартния вход на command2 , Тази връзка се осъществява преди всяко пренасочване, посочено от командата. Ако запазената дума! предхожда тръбопровод, изходният статус на този тръбопровод е логически НЕ на изходното състояние на последната команда. В противен случай състоянието на тръбопровода е изходното състояние на последната команда. Обвивката чака всички команди в тръбопровода да се прекратят, преди да върнат стойност. Акопът запазената дума предхожда тръбопровод, изминалото време, както и времето на потребителя и системата, консумирани от нейното изпълнение, се съобщават, когато тръбопроводът се прекратява. Най--p опцията променя изходния формат до този, посочен от POSIX. Най-ВРЕМЕВИ ФОРМАТ променливата може да бъде зададена на низ формат, който определя как да се показва информацията за синхронизирането. Всяка команда в даден тръбопровод се изпълнява като отделен процес (например в subshell). А списък е поредица от едно или повече тръбопроводи, разделени от един от операторите;, &, &&, или||, и евентуално прекратено от един от;, &, или От тези оператори на списъци,&& и|| има равен приоритет, следван от; и&, които имат еднакво предимство. Последователност от една или повече нови реда може да се появи в a списък вместо точка и запетая, за да се очертаят командите. Ако командата се прекъсне от контролния оператор&, черупката изпълнява командата в заден план в подлеп. Черупката не чака командата да завърши и състоянието на връщане е 0. Команди, разделени с a; се изпълняват последователно; черупката чака всяка команда да завърши на свой ред. Състоянието на връщане е изходното състояние на последната изпълнена команда. Контролните оператори&& и|| означават съответно списъците и OR списъци. Списъкът AND има формуляра command1 && command2 command2 се изпълнява, ако и само ако, command1 връща нивото на изход от нула. Списък с ОР има формуляра command1 || command2 command2 се изпълнява, ако и само ако command1 връща статус на излизане, различен от нула. Състоянието на връщане на списъците AND и OR е изходното състояние на последната команда, изпълнена в списъка. А комбинирана команда е едно от следните: (Списък) : списък се изпълнява в subshell. Променливите задачи и вградените команди, които влияят върху средата на обвивката, не остават в сила, след като командата завърши. Състоянието на връщане е изходното състояние на списък . {list; } : списък се изпълнява просто в текущата среда на обвивката. списък трябва да бъде прекратено с нов ред или точка и запетая. Това е известно като a групова команда , Състоянието на връщане е изходното състояние на списък , Обърнете внимание, че за разлика от метахарактарите( и), { и} сте запазени думи и трябва да се случи, когато запазена дума може да бъде разпозната. Тъй като те не причиняват слово почивка, те трябва да бъдат отделени списък по бели полета. ((Експресията)) : The изразяване се оценява съгласно правилата, описани в Аритметична оценка. Ако стойността на израза е ненулева, състоянието на връщането е 0; в противен случай статутът на връщане е 1. Това е точно еквивалентно напозволявам ' изразяване '. изразяване : Връща статус 0 или 1 в зависимост от оценката на условния израз изразяване , Изразите се състоят от първичните описания, описани по - долу Условни изрази. Разширяването на думите и разширението на пътя не се изпълняват по думите между и; разширяването на тилда, параметър и променлива експанзия, аритметично разширение, заместване на командата, заместване на процеса и отстраняване на котировки. Когато== и!= операторите се използват, низът отдясно на оператора се счита за модел и съответства на правилата, описани вСъвпадащ модел, Стойността на връщането е 0, ако низът съвпада или не съответства на шаблона съответно и 1 по друг начин. Всяка част от шаблона може да бъде цитирана, за да бъде принудена да бъде съчетана като низ. Изразите могат да се комбинират, като се използват следните оператори, изброени в низходящ ред: Най-&& и|| операторите не оценяват ИЗРАЗ2 ако стойността на израз1 е достатъчно, за да се определи възвръщаемата стойност на целия условен израз. В не-интерактивна обвивка или интерактивна черупка, в която има interactive_comments опция къмshopt вграденото е активирано, думата започва от# причинява тази дума и всички останали знаци на този ред да бъдат игнорирани. Интерактивна обвивка безinteractive_comments опцията е активирана, не позволява коментари. Най- interactive_comments опцията е включена по подразбиране в интерактивни черупки. Цитирайки се използва за премахване на специалното значение на някои знаци или думи към обвивката. Цитирането може да се използва за деактивиране на специалното третиране на специални символи, за предотвратяване на разпознаването на запазените думи като такива и за предотвратяване на разширяването на параметрите. Всеки от метасимвола изброени по - горе вОпределения има специално значение за черупката и трябва да бъде цитиран, ако иска да се представи. Когато се използват съоръженията за разширяване на командната история, разширяване на историята характер, обикновено!, трябва да бъдат цитирани, за да се предотврати разширяването на историята. Има три механизма за цитиране: бягство характер , единични кавички и двойни кавички. Некотирано наклонена черта () е бягство характер , Той запазва буквалната стойност на следващия символ, който следва, с изключение на Затварянето на знаци в единични кавички запазва буквалната стойност на всеки знак в кавичките. Едно цитиране може да не се случи между единични кавички, дори когато е предхождано от наклонена черта. Затварянето на знаците в двойните кавички запазва буквалната стойност на всички знаци в кавичките, с изключение на$, ', и, Героите$ и' запазват своето специално значение в рамките на двойни котировки. Задната наклонена черта запазва специалното си значение само ако е последвана от един от следните знаци:$, ', ', , или Специалните параметри* и@ имат специално значение, когато са в двойни кавички. Думи от формуляра$' низ "се третират специално. Думата се разширява до низ , като знаците за избягване на наклона назад са заменени, както е посочено от стандарта ANSI C. Секвенциите за избягване на наклона, ако има такива, се декодират, както следва: Разширеният резултат е еднократно цитиран, сякаш знакът на долара не е бил налице. Двупосочен низ, предхождан от знак за долар ($) ще доведе до превод на низа според текущия локал. Ако съществуващият локал е° С илиPOSIX, знакът за долара се игнорира. Ако низът е преведен и заменен, замяната е двойно цитирана. А параметър е обект, който съхранява стойности. Това може да бъде име , номер или един от специалните знаци, изброени вСпециални параметри, За целите на черупката, a променлив е параметър, обозначен с a име , Променливата има a стойност и нула или повече атрибути , Атрибутите се задават с помощта надекларирам вградена команда. Параметърът се задава, ако му е присвоена стойност. Нулевият низ е валидна стойност. След като веднъж е зададена променлива, тя може да бъде деактивирана само с помощта наненаместен вградена команда. А променлив може да бъде възложено чрез изявление на формуляра: име = стойност ако стойност не е дадено, променливата е присвоена на нула низ. всичко стойности да претърпят разширение на tilde, параметър и променливо разширение, замествания на команди, аритметично разширение и премахване на котировки. Ако променливата има свояцяло число атрибут, след това стойност е предмет на аритметично разширение, дори ако разширението $ ((…)) не се използва. Разделянето на думи не се изпълнява, с изключение на'$@' както е обяснено вСпециални параметри, Разширението на пътя не се изпълнява. Изявленията за задаване могат да се показват като аргументи задекларирам, отпечатване, износ, Само за четене, и местен вградени команди. А позиционен параметър е параметър, обозначен с една или повече цифри, различни от единичната цифра 0. Позициониращите параметри се задават от аргументите на обвивката, когато се извикват и могат да бъдат преразпределени, като се използвакомплект вградена команда. Позиционните параметри може да не се присвояват с отчети за присвояване. Параметрите на позицията временно се заместват, когато се изпълни функция на черупката. Когато се разшири позиционен параметър, състоящ се от повече от една цифра, той трябва да бъде затворен в скоби. Обвивката обработва няколко параметъра специално. Тези параметри могат да се посочват само; възлагането им не е разрешено. Следните променливи се задават от обвивката: БАШ: Разширява до пълното име на файла, използвано за извикване на този примерудрям. BASH_VERSINFO: Променлива за четене, чиито членове притежават информация за версията за този пример удрям, Стойностите, зададени за елементите на масива, са както следва: BASH_VERSION: Разширява се до низ, описващ версията на този екземпляр отудрям. COMP_CWORD: Индекс в$ {COMP_WORDS} на думата, съдържаща текущата позиция на курсора. Тази променлива е достъпна само в функциите на черупки, които се извикват от програмируемите устройства за завършване. COMP_LINE: Текущият команден ред. Тази променлива е налична само в функции на черупки и външни команди, извикани от програмируемите устройства за завършване. COMP_POINT: Индексът на текущата позиция на курсора спрямо началото на текущата команда. Ако текущата позиция на курсора е в края на текущата команда, стойността на тази променлива е равна на$ {# COMP_LINE}, Тази променлива е налична само в функции на черупки и външни команди, извикани от програмируемите устройства за завършване. COMP_WORDS: Променлива на масива, състояща се от отделните думи в текущия команден ред. Тази променлива е достъпна само в функциите на черупки, които се извикват от програмируемите устройства за завършване. DIRSTACK: Променлива на масива, съдържаща текущото съдържание на пакета с директории. Директорите се показват в стека в реда, в който са показани отдиректории Вградената. Присвояването на членове на този масив може да бъде използвано за променяне на директории, които вече са в стека, ав обратен ред иПревърта стека вградените файлове трябва да се използват за добавяне и премахване на директории. Присвояването на тази променлива няма да промени текущата директория. акоDIRSTACK е изключен, той губи своите специални свойства, дори ако впоследствие бъде нулиран. EUID: Разширява до ефективния потребителски идентификатор на текущия потребител, инициализиран при стартиране на shell. Тази променлива е readonly. FUNCNAME: Името на всяка изпълняваща в момента черупка функция. Тази променлива съществува само когато изпълнява функция на черупки. Задания къмFUNCNAME нямат ефект и връщат състояние на грешка. акоFUNCNAME е изключен, той губи своите специални свойства, дори ако впоследствие бъде нулиран. ГРУПИ: Променлива на масива, съдържаща списъка на групите, чийто член е настоящият потребител. Задания къмГРУПИ нямат ефект и връщат състояние на грешка. акоГРУПИ е изключен, той губи своите специални свойства, дори ако впоследствие бъде нулиран. HISTCMD: История номер или индекс в списъка история на текущата команда. акоHISTCMD е изключен, той губи своите специални свойства, дори ако впоследствие бъде нулиран. HOSTNAME: Автоматично задаване на името на текущия хост. HOSTTYPE: Автоматично задайте низ, който уникално описва вида на машината, върху която се намираудрям се изпълнява. Стандартната настройка е зависима от системата. LINENO: Всеки път, когато този параметър е посочен, черупката замества десетично число, представляващо текущия последователен номер на линия (започващ от 1) в скрипт или функция. Когато не е в скрипт или функция, заместената стойност не е гарантирана, че има смисъл. акоLINENO е изключен, той губи своите специални свойства, дори ако впоследствие бъде нулиран. MACHTYPE: Автоматично задаване на низ, който напълно описва типа на системата, на койтоудрям се изпълнява в стандартния GNU CPU-фирма-система формат. Стандартната настройка е зависима от системата. OLDPWD: Предишната работна директория, зададена отCD команда. OPTARG: Стойността на аргумента за последната опция, обработена ота индексът вградена команда. $ OPTIND: Индексът на следващия аргумент, който трябва да бъде обработен ота индексът вградена команда. OSTYPE: Автоматично задаване на низ, който описва операционната система, на която се намираудрям се изпълнява. Стандартната настройка е зависима от системата. PIPESTATUS: Променлива на масива, съдържаща списък със стойности за статуса на изход от процесите в най-скоро изпълнения тръбопровод за преден план, който може да съдържа само една команда. PPID: Идентификационният процес на родителя на обвивката. Тази променлива е readonly. хората с увреждания: Текущата работна директория, зададена отCD команда. СЛУЧАЙНА: Всеки път, когато този параметър е посочен, се генерира случайно цяло число между 0 и 32767. Последователността на произволните номера може да бъде инициализирана чрез задаване на стойност на СЛУЧАЙНА, акоСЛУЧАЙНА е изключен, той губи своите специални свойства, дори ако впоследствие бъде нулиран. ОТГОВОР: Задайте реда на въвеждане, прочетен отПрочети вградена команда, когато няма предоставени аргументи. СЕКУНДИ: Всеки път, когато този параметър е посочен, броят секунди от връщането на обвивката на командата. Ако е присвоена стойностСЕКУНДИ, стойността, възстановена при следващите референции, е броят секунди от момента на заданието плюс зададената стойност. ако СЕКУНДИ е изключен, той
Определения
Запазени думи
Shell Граматика: Обикновени команди
тръбопроводи
списъци
Комбинирани команди
Коментари
Цитирайки
Параметри
Позиционни параметри
Специални параметри
Променливи на Shell