Команда Linux Unix: bash

Ім'я

bash - GNU Bourne-Again SHell

Синопис

bash [параметри] [файл]

Опис

Bash - це сумісний інтерпретатор мови командних команд sh, який виконує команди, прочитані зі стандартного вводу або з файлу. Bash також включає корисні функції з Korn і Cshells ( ksh і csh ).

Bash призначений для відповідного впровадження специфікації оболонки та інструментів IEEE POSIX (Робоча група IEEE 1003.2).

Параметри

На додаток до односимвольних параметрів оболонки, задокументованих в описі встановленої вбудованої команди, bash інтерпретує наступні параметри при її виклику:

-c рядок

Якщо параметр -c присутній, то команди зчитуються з рядка. Якщо після рядка є аргументи, вони присвоюються позиційним параметрам, починаючи з $ 0 .

Якщо параметр -i присутній, оболонка є інтерактивною.

Зробіть bash діяти так, ніби його викликали як оболонку для входу (див. НЕЗАБАВЛЕННЯ нижче).

Якщо параметр -r присутній, оболонка стає обмеженою (див. RESTRICTED SHELL нижче).

-ів

Якщо параметр -s присутній, або після обробки параметрів не залишається жодних аргументів, команди зчитуються зі стандартного вводу. Ця опція дозволяє встановлювати позиційні параметри при виклику інтерактивної оболонки.

-D

Перелік усіх рядків з подвійним котируванням, яким передує $ , друкується на стандартному виході. Це рядки, які підлягають мовному перекладу, коли поточний локал не є C або POSIX . Це передбачає варіант -n ; ніякі команди не виконуватимуться.

[- +] O [ shopt_option]

shopt_option - це один із параметрів оболонки, прийнятий вбудованим магазином (див. КОМАНДИ ДОПОМОГАННЯ нижче). Якщо shopt_option є, -O встановлює значення цього параметра; + O знімає його. Якщо shopt_option не надається, імена та значення параметрів оболонки, прийняті shopt , друкуються на стандартному виході. Якщо опція виклику становить + O , вихід відображається у форматі, який може бути використаний повторно як введення.

А - сигналізує про закінчення параметрів і вимикає подальшу обробку опцій. Будь-які аргументи після - трактуються як імена та аргументи. Аргумент - - еквівалентно - .

Bash також інтерпретує ряд варіантів з кількома символами. Ці параметри повинні з'являтися в командному рядку перед розпізнаванням однозначних параметрів.

--dump-po-strings

Еквівалентно -D , але вихід знаходиться у форматі файлу gettext po (портативний об'єкт) GNU.

--dump-рядки

Рівнозначно -D .

- допомогти

Відображення повідомлення про використання на стандартному виході та успішному виході.

--init-файл- файл

--rcfile файл

Виконайте команди з файлу замість стандартного персонального файлу ініціалізації ~ / .bashrc, якщо оболонка інтерактивна (див. ІНВОКАЦІЯ нижче).

--логін

Рівнозначно .

--повідомлення

Не використовуйте бібліотеку читання GNU для читання командних рядків, коли оболонка інтерактивна.

--noprofile

Не читайте ні загальносистемний файл запуску / і т.д. / профіль, ні будь-який із персональних файлів ініціалізації ~ / .bash_profile, ~ / .bash_login або ~ / .profile. За замовчуванням bash зчитує ці файли, коли вони викликаються як оболонка для входу (див. ІНВЕКЦІЯ нижче).

--norc

Не читайте та не виконуйте персональний файл ініціалізації ~ / .bashrc, якщо оболонка інтерактивна. Цей параметр увімкнено за замовчуванням, якщо оболонка викликається як sh .

--посикс

Змініть поведінку bash, коли операція за замовчуванням відрізняється від стандарту POSIX 1003.2, щоб відповідати стандарту (режим posix).

- обмежений

Оболонка стає обмеженою (див. ВІДКРИТИЙ ШАЛЬ нижче).

- rpm-вимагає

Створіть список файлів, необхідних для запуску сценарію оболонки. Це означає «-n» і підпадає під ті ж обмеження, що і перевірка перевірки помилок під час збирання; Повернення, [] тести та огляди не розбираються, тому деякі залежності можуть бути пропущені. - вербозна еквівалентна -v .

--вертальність

Показати інформацію про версію для цього примірника bash на стандартному виході та успішно вийти.

Аргументи

Якщо після обробки параметрів залишаються аргументи, і не надано ні опції -c, ні -s , перший аргумент вважається назвою файлу, що містить команди оболонки. Якщо bash викликається таким чином, $ 0 встановлюється на ім'я файлу, а позиційні параметри встановлюються на інші аргументи. Bash читає та виконує команди з цього файлу, а потім виходить. Статус виходу Баша - це статус виходу останньої команди, виконаної в сценарії. Якщо команди не виконуються, стан виходу становить 0. Спершу робиться спроба відкрити файл у поточному каталозі; якщо файл не знайдений, то оболонка шукає сценарії в PATH для скрипту.

Заклик

Оболонка входу - це той, чий перший символ нуля аргументу - - , або той, що розпочався з опції --login .

Інтерактивна оболонка - це запускається без необов'язкових аргументів і без опції -c , стандартний вхід і вихід як підключений до терміналів (як визначено у відповідності (3)), так і інший, розпочатий з опції -i . PS1 встановлений, а $ - включає i, якщо bash є інтерактивним, що дозволяє сценарію оболонки або файлу запуску перевірити цей стан.

У наступних параграфах описано, як bash виконує свої файли запуску. Якщо будь-який з файлів існує, але його неможливо прочитати, bash повідомляє про помилку. Тильди розгортаються у назвах файлів, як описано нижче у розділі Розширення Tilde у розділі ДОСЛІДЖЕННЯ.

Коли bash викликається як інтерактивна оболонка входу, або як неінтерактивна оболонка з опцією --login , вона спочатку зчитує та виконує команди з файлу / etc / profile, якщо такий файл існує. Прочитавши цей файл, він шукає у цьому порядку ~ / .bash_profile, ~ / .bash_login та ~ / .profile та зчитує та виконує команди з першого, який існує та читається. Параметр --noprofile може використовуватися, коли оболонка запускається для пригнічення такої поведінки.

Коли оболонка входу виходить, bash зчитує та виконує команди з файлу ~ / .bash_logout, якщо він існує.

Коли запускається інтерактивна оболонка, яка не є оболонкою для входу, bash зчитує та виконує команди з ~ / .bashrc, якщо цей файл існує. Це може бути пригнічено за допомогою параметра --norc . Параметр файлу --rcfile змусить bash читати та виконувати команди з файлу замість ~ / .bashrc.

Наприклад, коли bash запускається неінтерактивно, для запуску скрипта оболонки, наприклад, він шукає змінну BASH_ENV у середовищі, розширює його значення, якщо вона там відображається, і використовує розширене значення як ім'я файлу для читання та виконання . Bash поводиться так, ніби виконується наступна команда:

if [-n "$ BASH_ENV"]; тоді . "$ BASH_ENV"; фі

але значення змінної PATH не використовується для пошуку імені файлу.

Якщо bash викликається ім'ям sh , він намагається максимально наблизити поведінку до запуску історичних версій sh , дотримуючись стандарт POSIX. Коли його викликають як інтерактивну оболонку входу або неінтерактивну оболонку з опцією --login , вона спочатку намагається прочитати та виконати команди з / etc / profile та ~ / .profile у такому порядку. Параметр --noprofile може використовуватися для гальмування такої поведінки. Коли викликається інтерактивна оболонка з ім'ям sh , bash шукає змінну ENV , розширює її значення, якщо вона визначена, і використовує розширене значення як ім'я файлу для читання та виконання. Оскільки оболонка, на яку посилається sh , не намагається читати та виконувати команди з будь-яких інших файлів запуску, параметр --rcfile не впливає. Неінтерактивна оболонка з ім'ям sh не намагається прочитати інші файли запуску. Після виклику як sh , bash переходить у режим posix після зчитування файлів запуску.

Коли bash запускається в режимі posix, як і в командному рядку --posix , він відповідає стандарту POSIX для файлів запуску. У цьому режимі інтерактивні оболонки розширюють змінну ENV, і команди читаються та виконуються з файлу, ім'я якого є розширеним значенням. Інші файли запуску не читаються.

Bash намагається визначити, коли він працює за допомогою віддаленого демона оболонки, зазвичай rshd. Якщо bash визначає, що ним керує rshd, він читає та виконує команди з ~ / .bashrc, якщо цей файл існує та читається. Це не зробить, якщо викликати як sh . Параметр --norc може бути використаний для гальмування такої поведінки, а параметр --rcfile може використовуватися для примушування до зчитування іншого файлу, але rshd, як правило, не викликає оболонку з цими параметрами або дозволяє вказати їх.

Якщо оболонка запускається з ефективного ідентифікатора користувача (групи), який не дорівнює ідентифікатору реального користувача (групи), а опція -p не надається, файли запуску не зчитуються, функції оболонки не успадковуються з оточення, SHELLOPTS змінна, якщо вона з’являється в середовищі, ігнорується, а ефективний ідентифікатор користувача встановлюється на реальний ідентифікатор користувача. Якщо параметр -p надається при виклику, поведінка при запуску буде однаковою, але ефективний ідентифікатор користувача не скидається.

Визначення

Наступні визначення використовуються в решті цього документа.

порожній

Пробіл або вкладка.

слово

Послідовність символів, що розглядаються оболонкою як одна одиниця. Також відомий як маркер .

назва

Слово, що складається лише з буквено-цифрових символів та підкреслень, і починається з буквеного символу або підкреслення. Також називається ідентифікатором .

метахарактер

Персонаж, який, коли не цитується, розділяє слова. Одне з наступних:

| &; () пробіл

оператор управління

Маркер, який виконує керуючу функцію. Це один із наступних символів:

|| & &&; ;; () |

Зарезервовані слова

Зарезервовані слова - це слова, які мають особливе значення для оболонки. Наступні слова визнаються зарезервованими, коли не цитуються, або першим словом простої команди (див. SHELL GRAMMAR нижче) або третім словом відмінка або команди:

! case do done elif else esac fi для функції, якщо в select тоді до, поки {} час [[]]

Прості команди

Проста команда - це послідовність необов'язкових призначень змінних, за якими слідують порожні слова та перенаправлення, і закінчується оператором управління. Перше слово вказує команду, яку потрібно виконати, і передається як нульовий аргумент. Решта слів передаються як аргументи викликаній команді.

Зворотним значенням простої команди є її вихідний стан, або 128 + n, якщо команда припиняється сигналом n.

Трубопроводи

Трубопровід - це послідовність однієї або декількох команд, розділених символом | . Формат трубопроводу:

[ час [ -п ]] [! ] команда [ | command2 ...]

Стандартний вихід команди підключений по трубі до стандартного входу команди2. Це з'єднання виконується перед будь-якими перенаправленнями, вказаними командою (див. ПОВЕРНЕННЯ нижче).

Якщо зарезервоване слово ! перед трубопроводом, статус виходу цього трубопроводу є логічним НЕ статусом виходу останньої команди. В іншому випадку стан трубопроводу - це стан виходу останньої команди. Оболонка чекає, поки всі команди в трубопроводі завершаться перед поверненням значення.

Якщо зарезервоване час передує конвеєру, про закінчується, а також про споживчий та системний час, споживаний його виконанням, повідомляється про закінчення конвеєра. Параметр -p змінює вихідний формат у форматі, визначеному POSIX. Змінна TIMEFORMAT може бути встановлена ​​у рядку формату, який визначає, як повинна відображатися інформація про час; дивіться опис TIMEFORMAT в розділі " Оболонки змін" нижче.

Кожна команда в конвеєрі виконується як окремий процес (тобто в підпакеті).

Списки

Список - це послідовність одного або декількох трубопроводів, розділених одним з операторів ; , & , && або || , і необов'язково припиняється одним із ; , & , або .

З цих операторів списку && та || мають рівний пріоритет, за яким слідують ; та &, які мають рівний пріоритет.

Послідовність одного або декількох нових рядків може з’являтися в списку замість крапки з комою для розмежування команд.

Якщо команду припиняє оператор керування & , оболонка виконує команду на задньому майданчику в підпакеті. Оболонка не чекає завершення команди, а стан повернення - 0. Команди, розділені а ; виконуються послідовно; оболонка чекає, коли кожна команда завершиться по черзі. Статус повернення - це стан виходу останньої виконаної команди.

Оператори управління && та || позначають списки AND і списки АБО відповідно. Список І має форму

command1 && command2

Команда2 виконується, якщо і тільки якщо команда1 повертає статус виходу в нуль.

Список АБО має форму

команда1 || команда2

command2 виконується тоді і лише тоді, коли command1 повертає ненульовий статус виходу. Статус повернення списку AND і OR - це стан виходу останньої команди, виконаної у списку.

Складені команди

Складена команда - це одне з наступних:

(список)

список виконується в підрозділі. Змінні призначення та вбудовані команди, які впливають на середовище оболонки, не залишаються в силі після завершення команди. Статус повернення - це статус виходу зі списку.

{список; }

список просто виконується в поточному середовищі оболонки. список повинен бути завершений новим рядком або крапкою з комою. Це відомо як команда групи. Статус повернення - це статус виходу зі списку. Зауважте, що на відміну від метахарактерів ( і ) , { і } є зарезервованими словами і повинні виникати там, де дозволено розпізнавати зарезервоване слово. Оскільки вони не викликають розриву слова, їх потрібно відокремити від списку пробілом.

((вираз))

Вираз оцінюється за правилами, описаними нижче в АРИТМЕТИЧНІЙ ОЦІНКІ . Якщо значення виразу не дорівнює нулю, стан повернення дорівнює 0; інакше статус повернення дорівнює 1. Це абсолютно рівнозначно вираженню " вираз".

[[ вираз ]]

Поверніть статус 0 або 1 залежно від оцінки умовного експресія. Вирази складаються з праймеріз, описаних нижче в CONDITIONAL EXPRESSIONS . Розбиття слів та розширення імені шляху не виконуються на словах між [[ і ]] ; виконується розширення тильди, розширення параметрів і змінних, арифметичне розширення, підміна команд, підміна процесу і видалення цитат.

Коли використовуються оператори == і ! = , Рядок, що знаходиться праворуч від оператора, вважається шаблоном і відповідає відповідно до правил, описаних нижче в розділі Узгодження шаблону . Повернене значення дорівнює 0, якщо рядок відповідає або не відповідає шаблону відповідно, і 1 в іншому випадку. Будь-яка частина шаблону може бути процитована, щоб змусити його відповідати як рядок.

Вирази можна комбінувати за допомогою наступних операторів, перелічених у порядку зменшення пріоритетності:

( вираз)

Повертає значення вираження. Це може бути використане для зміни нормального переваги операторів.

! вираз

Вірно, якщо вираз хибний.

express1 && вираз2

Вірно, якщо і вираз1, і вираз2 є істинними.

вираз1 || вираження2 Істинно, якщо вираз1 або вираз2 є істинним.

&& та || оператори не оцінюють вираз2, якщо значення вираження1 є достатнім для визначення зворотного значення всього умовного виразу.

за назвою [словом]; робити список; зроблено

Список слів, наступних у , розширюється, створюючи перелік елементів. Ім'я змінної встановлюється по черзі кожному елементу цього списку, і список виконується щоразу. Якщо слово впущено, команда for виконує список один раз для кожного встановленого позиційного параметра (див. PARAMETERS нижче). Статус повернення - це стан виходу останньої команди, яка виконується. Якщо розширення наступних елементів приводить до порожнього списку, команди не виконуються, а стан повернення дорівнює 0.

for ((expr1; expr2; expr3)); робити список; зроблено

По-перше, арифметичний вираз expr1 оцінюється за правилами, описаними нижче в АРИТМЕТИЧНІЙ ОЦІНКІ . Арифметичний вираз expr2 потім оцінюється багаторазово, поки він не оцінюється до нуля. Кожен раз, коли expr2 оцінюється на ненульове значення, виконується список і оцінюється арифметичне вираження expr3. Якщо будь-який вираз опущено, він поводиться так, ніби він оцінюється до 1. Повернене значення - це статус виходу останньої команди, що виконується у списку, або помилкове, якщо будь-який із виразів недійсний.

вибрати назву [словом]; робити список; зроблено

Список слів, наступних у , розширюється, створюючи перелік елементів. Набір розгорнутих слів друкується на стандартній помилці, кожній з яких передує цифра. Якщо слово впущено, позиційні параметри друкуються (див. ПАРАМЕТРИ нижче). Після цього відображається рядок PS3 , а з стандартного вводу читається рядок. Якщо рядок складається з числа, що відповідає одному з відображених слів, то для цього слова встановлюється значення імені. Якщо рядок порожній, слова та запит відображаються знову. Якщо EOF зчитується, команда виконується. Будь-яке інше прочитане значення призводить до встановлення нуля. Зчитування рядка зберігається у змінній REPLY . Список виконується після кожного вибору, поки не буде виконана команда перерви . Статус вибору вибору - це статус виходу останньої команди, виконаної у списку, або нульовий, якщо жодні команди не виконувались.

регістрове слово у [[(] шаблоні [ | шаблоні]

Команда case спочатку розширює слово і намагається по черзі порівнювати його з кожним шаблоном, використовуючи ті самі правила відповідності, що і для розширення імені шляху (див. Розширення Pathname нижче). Коли відповідність знайдена, відповідний список виконується. Після першого матчу жодних подальших поєдинків не робиться. Стан виходу дорівнює нулю, якщо жоден шаблон не відповідає. В іншому випадку це статус виходу останньої команди, виконаної у списку.

якщо список; потім список; [список elif ; потім список; ] ... [ інший список; ] fi

Список if виконується. Якщо його вихідний стан дорівнює нулю, тоді виконується список. В іншому випадку кожен список elif виконується по черзі, і якщо його статус виходу дорівнює нулю, відповідний тоді список виконується і команда завершується. В іншому випадку список інших виконується, якщо він присутній. Статус виходу - це стан виходу останньої виконаної команди або нульовий, якщо умова не перевірена істинною.

в той час як список; робити список; зроблено

до списку; робити список; зроблено

Команда while безперервно виконує список do до тих пір, поки остання команда listlist повертає статус виходу в нуль. Команда " до" є ідентичною команді " час" , за винятком того, що тест заперечується; список виконання виконується до тих пір, поки останній список команд поверне ненульовий статус виходу. Статус виходу в той час і до тих пір, поки команди - це статус виходу останньої виконаної команди списку do , або нуль, якщо жодна не виконується.

[ функція ] name () {список; }

Це визначає функцію з ім'ям. Основою функції є список команд між {і}. Цей список виконується щоразу, коли ім'я вказується як назва простої команди. Статус виходу функції - це статус виходу останньої команди, виконаної в тілі. (Див. ФУНКЦІЇ нижче).

Коментарі

У неінтерактивній оболонці або інтерактивній оболонці, у якій включена опція interactive_comments до вбудованого магазину (див. SHELL BUILTIN COMMANDS нижче), слово, що починається з #, викликає ігнорування цього слова та всіх інших символів у цьому рядку. Інтерактивна оболонка без включеної опції interactive_comments не дозволяє коментувати. Параметр interactive_comments увімкнено за замовчуванням в інтерактивних оболонках.

ЦИТУВАННЯ

Цитування використовується для видалення спеціального значення певних символів або слів до оболонки. Цитування можна використовувати для відключення спеціального лікування спеціальних символів, для запобігання розпізнаванню зарезервованих слів як таких і для запобігання розширення параметрів.

Кожен з перелічених вище метахарактерів у розділі ВИЗНАЧЕННЯ має спеціальне значення для оболонки і повинен бути цитований, якщо він повинен представляти себе.

Коли використовуються засоби розширення історії команд, характер розширення історії, як правило ! , повинні бути цитовані, щоб запобігти розширенню історії.

Існує три механізми цитування: символ втечі, одиничні лапки та подвійні лапки.

Відхилення від котиру, що не котирується ( ) - характер втечі. Він зберігає буквальне значення наступного символу, що випливає, за винятком. Якщо з'являється пара, а зворотна косої риски не є самою цитатою, трактується як продовження рядка (тобто він видаляється з вхідного потоку і ефективно ігнорується).

Замикання символів в одиничних лапках зберігає буквальне значення кожного символу в лапках. Одиночна цитата може не виникати між окремими цитатами, навіть коли передує зворотна косою рисою.

Замикання символів у подвійних лапках зберігає буквальне значення всіх символів у лапках, за винятком $ , ` і . Символи $ і ` зберігають своє особливе значення в подвійних лапках. Нахил нахилу зберігає своє особливе значення лише тоді, коли слідує один із таких символів: $ , ` , " , , або . Подвійна котирування може бути наведена у подвійних лапках, попередньо додавши її до зворотної косої риски.

Спеціальні параметри * і @ мають особливе значення у подвійних лапках (див. ПАРАМЕТРИ нижче).

Слова форми $ 'string "обробляються спеціально. Слово розширюється до рядка, а символи, що ухиляються від косої риски, замінюються відповідно до стандарту ANSI C. Послідовності втечі зворотного схилу, якщо вони є, декодуються наступним чином:

а

оповіщення (дзвоник)

б

зворотній простір

е

персонаж втечі

f

форму подачі

н

нова лінія

r

повернення вагона

т

горизонтальна вкладка

v

вертикальна вкладка

зворотний нахил

'

єдина цитата

nnn

восьмирозрядний символ, значення якого - вісімкове значення nnn (одна-три цифри)

x HH

восьми бітний символ, значення якого - шістнадцяткове значення HH (одна або дві шістнадцяткові цифри)

c x

символ керування-х

Розширений результат одноцитований, як ніби знак долара не був.

Рядок з подвійним котируванням, який передує знаку долара ( $ ), призведе до перекладу рядка відповідно до поточного локалу. Якщо поточний локал - C або POSIX , знак долара ігнорується. Якщо рядок переведено і замінено, заміна подвійно цитується.

Параметри

Параметр - це сутність, яка зберігає значення. Це може бути ім'я, число чи один із спеціальних символів, перелічених нижче у Спеціальних параметрах . Для цілей оболонки змінна - це параметр, позначений іменем. Змінна має значення та нульове або більше атрибутів. Атрибути присвоюються за допомогою вбудованої команди (див. Заявити нижче в SHELL BUILTIN COMMANDS ).

Параметр встановлюється, якщо йому було призначено значення. Нульовий рядок - це дійсне значення. Після встановлення змінної вона може бути відключена лише за допомогою команди unset вбудована (див. SHELL BUILTIN COMMANDS нижче).

Змінна може бути призначена висловлюванням форми

name = [значення]

Якщо значення не задано, змінній присвоюється нульовий рядок. Усі значення зазнають розширення тильди, розширення параметрів та змінних, підміна команд, арифметичне розширення та видалення цитат (див. ДОСЛІДЖЕННЯ нижче). Якщо змінна має свій цілий набір атрибутів, то значення підлягає арифметичному розширенню, навіть якщо розширення $ ((...) не використовується (див. Арифметичне розширення нижче). Розбиття слів не виконується, за винятком "$ @", як пояснено нижче у Спеціальних параметрах . Розширення шляху не виконується. Виписки про призначення можуть також з'являтися як аргументи команд декларування , набору , експорту , лише для читання та локальних вбудованих команд.

Позиційні параметри

Позиційний параметр - це параметр, позначений однією або кількома цифрами, відмінними від одноцифрової 0. Позиційні параметри призначаються з аргументів оболонки, коли вона викликається, і можуть бути перепризначені за допомогою команди setinin. Позиційні параметри можуть не призначатися операторам призначення. Позиційні параметри тимчасово замінюються, коли виконується функція оболонки (див. ФУНКЦІЇ нижче).

Коли розгорнутий позиційний параметр, що складається з більш ніж однієї цифри, він повинен бути укладений у дужки (див. ДОСЛІДЖЕННЯ нижче).

Спеціальні параметри

Оболонка спеціально обробляє кілька параметрів. На ці параметри можна посилатися лише; присвоєння їм не допускається.

*

Розширюється на позиційні параметри, починаючи з одиниці. Коли розширення відбувається в межах подвійних лапок, воно розширюється на одне слово зі значенням кожного параметра, розділеним першим символом спеціальної змінної IFS . Тобто " $ * " еквівалентно " $ 1 c $ 2 c ... ", де c - перший символ значення змінної IFS . Якщо IFS не встановлено, параметри розділяються пробілами. Якщо IFS недійсне, параметри з'єднуються без втручання роздільників.

@

Розширюється на позиційні параметри, починаючи з одиниці. Коли розширення відбувається в межах подвійних лапок, кожен параметр розширюється на окреме слово. Тобто " $ @ " еквівалентно " $ 1 " " $ 2 " ... Коли немає позиційних параметрів, " $ @ " і $ @ розширюються ні до чого (тобто вони видаляються).

#

Розширюється на кількість позиційних параметрів у десятковій частині.

?

Розширює статус останнього виконаного переднього плану трубопроводу.

-

Розширюється на поточні прапори опцій, як зазначено при виклику, набором вбудованої команди або на ті, які встановлює сама оболонка (наприклад, опція -i ).

$

Розширюється на ідентифікатор процесу оболонки. У підпакеті () вона розширюється на ідентифікатор процесу поточної оболонки, а не на нижню.

!

Розгортається до ідентифікатора процесу останньо виконаної фонової (асинхронної) команди.

0

Розширюється до назви оболонки або сценарію оболонки. Це встановлюється при ініціалізації оболонки. Якщо bash викликається файлом команд, на ім'я цього файла встановлюється $ 0 . Якщо bash запускається з опцією -c , тоді $ 0 встановлюється першим аргументом після виконання рядка, якщо такий присутній. В іншому випадку воно встановлюється на ім'я файлу, що використовується для виклику bash , як задано аргументом нуль.

_

При запуску оболонки встановіть абсолютне ім'я файлу оболонки або сценарію оболонки, який виконується, як передано у списку аргументів. Згодом розширюється до останнього аргументу до попередньої команди, після розширення. Також встановіть повне ім’я файлу кожної команди, виконаної та розміщеної у середовищі, експортованому до цієї команди. Під час перевірки пошти цей параметр містить ім'я файлу пошти, який зараз перевіряється.

Змінні оболонки

Наступні змінні встановлюються оболонкою:

БАШ <