|
|
Рядок 1: |
Рядок 1: |
− | Bash - командний інтерпретатор що був створений Фондом вільно поширюваного програмного забезпечення у відповідності до специфікацій командного інтерпретатора та інструментальних засобів IEEE POSIX (IEEE POSIX Shell and Tools specification) (IEEE Working Group 1003.2). Bash - sh-сумісний інтерпретатор командної мови, що виконує команди, прочитані зі стандартного вхідного потоку або з файлу. Командний інтерпретатор bash також включає корисні засоби командних інтерпретаторів Korn і C. | + | Bash - командний інтерпретатор що був створений Фондом вільно поширюваного програмного забезпечення у відповідності до стандарту IEEE POSIX. Призначений для виконання команд, прочитаних ним зі стандартного вхідного потоку або з файлу. Також включає в себе корисні засоби командних інтерпретаторів Korn і C. |
| | | |
| Синтаксис інтерпретатора наступний: | | Синтаксис інтерпретатора наступний: |
| bash ['''опції'''] ['''файл'''] | | bash ['''опції'''] ['''файл'''] |
| | | |
− | ОПЦІЇ
| + | '''Основи команд інтерпретатора bash''' |
− | Крім однобуквених опцій командного інтерпретатора, представлених в описі вбудованої команди set, bash інтерпретує при виклику такі опції:
| + | |
− | -c рядок - якщо вказана опція-c, команди читаються з рядка. Якщо після рядка є аргументи, їх значення присвоюються позиційним параметрами, починаючи з $0.
| + | |
− | -R - якщо вказана опція-r, командний інтерпретатор стає обмеженим (див. "ОБМЕЖЕНОЮ командний інтерпретатор" нижче).
| + | |
− | -I - якщо вказана опція-i, командний інтерпретатор працює як інтерактивний.
| + | |
− | -S - якщо вказана опція-s або якщо після обробки опцій аргументів не залишається, команди читаються зі стандартного вхідного потоку. Ця опція дозволяє встановлювати позиційні параметри при виклику інтерактивного командного інтерпретатора.
| + | |
− | -D - Список всіх рядків у подвійних лапках з префіксом $ видається в стандартний вихідний потік. Це рядки, які необхідно перевести на відповідну мову, якщо поточна локаль відрізняється від C або POSIX. При цьому неявно передбачається опція-n; ніякі команди виконуватися не будуть.
| + | |
− | -- - Пара дефісів позначає кінець опцій і відключає їх подальшу обробку. Будь-які аргументи після - розглядаються як імена файлів і аргументи. Аргумент - еквівалентний --.
| + | |
| | | |
| + | Проста команда - це завершувана керуючим оператором послідовність необов'язкових присвоювань значень змінним, після яких йдуть слова, розділені пробілами, і перенаправлення потоків. Перше слово задає команду, яку треба виконати. Решта слів передаються як аргументи викликаної команді. |
| + | Значенням що повертається простої команди є її статус виходу, або 128+n, якщо команда завершена сигналом n. |
| | | |
− | Командний інтерпретатор bash також інтерпретує кілька многосімвольних опцій. Ці опції, щоб вони були розпізнані, повинні зазначатися в командному рядку перед Односимвольний опціями.
| + | Окрім цього розглядають ще поняття конвеєру і списку |
− | - Dump-po-strings
| + | |
− | Аналогічна опції-D, але результат видається у форматі GNU gettext po (portable object - переносимий об'єкт).
| + | |
| | | |
− | - Dump-strings
| + | Конвеєр - послідовність однієї або більше команд, розділених символом |. Конвеєр має наступний формат: |
− | Аналогічна опції-D.
| + | |
− | | + | |
− | - Help
| + | |
− | Видає в стандартний вихідний потік повідомлення про використання та успішно завершує роботу.
| + | |
− | | + | |
− | - Login
| + | |
− | Змушує bash працювати так, як якби він був викликаний в якості початкового командного інтерпретатора (див. "ВИКЛИК" нижче).
| + | |
− | | + | |
− | - Noediting
| + | |
− | Не використовує бібліотеку GNU readline для читання командних рядків в інтерактивному режимі.
| + | |
− | | + | |
− | - Noprofile
| + | |
− | Не читає ні загальносистемний файл початкового запуску / etc / profile, ні будь-який з персональних файлів ініціалізації користувача ~ /. Bash_profile, ~ /. Bash_login або ~ /. Profile. За замовчуванням, bash читає ці файли при виклику в якості початкового командного інтерпретатора (див. "ВИКЛИК" нижче).
| + | |
− | | + | |
− | - Norc
| + | |
− | Не читає і не виконує персональний файл ініціалізації ~ /. Bashrc, якщо командний інтерпретатор працює інтерактивно. Ця опція за замовчуванням включена, якщо інтерпретатор викликаний як sh.
| + | |
− | | + | |
− | - Posix
| + | |
− | Змінює на стандартну поведінку bash в тих випадках, коли воно відрізняється від передбачуваного стандартом POSIX 1003.2.
| + | |
− | | + | |
− | - Rcfile файл
| + | |
− | Виконує команди із зазначеного файлу замість стандартного персонального файлу ініціалізації ~ /. Bashrc, якщо командний інтерпретатор працює інтерактивно (див. "ВИКЛИК" нижче).
| + | |
− | | + | |
− | - Restricted
| + | |
− | Командний інтерпретатор стає обмеженим (див. "ОБМЕЖЕНОЮ командний інтерпретатор" нижче).
| + | |
− | | + | |
− | - Verbose
| + | |
− | Аналогічна опції-v.
| + | |
− | | + | |
− | - Version
| + | |
− | Видає інформацію про версію даного екземпляра bash в стандартний вихідний потік і успішно завершує роботу.
| + | |
− | АРГУМЕНТИ
| + | |
− | | + | |
− | Якщо після обробки опцій залишилися аргументи і не вказані опції-c або-s, перший аргумент вважається ім'ям файлу, що містить команди інтерпретатора. Якщо bash викликаний таким чином, параметр $ 0 встановлюється рівним імені файлу, а значеннями позиційних параметрів стають інші аргументи. Командний інтерпретатор bash читає і виконує команди з цього файлу, а потім завершує роботу. Статусом виходу bash є статус виходу останньої команди, виконаної в сценарії. Якщо жодна команда не виконана, статус виходу - 0.
| + | |
− | ВИКЛИК
| + | |
− | | + | |
− | Початковий командний інтерпретатор (login shell) - це інтерпретатор, перший символ нульового аргументу якого є дефісом (-) або який запущений з опцією - login.
| + | |
− | | + | |
− | Інтерактивним є командний інтерпретатор, стандартний вхідний і вихідний потоки якого підключені до терміналів (що визначається за допомогою функції isatty (3)), або запущений з опцією-i. Мінлива середовища PS1 встановлюється і прапори ($ -) включають i, тільки якщо bash є інтерактивним інтерпретатором, що дозволяє перевірити це у файлі початкового запуску або в сценарії командного інтерпретатора.
| + | |
− | | + | |
− | Наступні абзаци описують, як bash виконує свої файли початкового запуску. Якщо будь-який з цих файлів існує, але не може бути прочитаний, bash видає повідомлення про помилку. Символи тильди (~) в іменах файлів замінюються так, як описано в підрозділі "Заміна тильди" розділу "ЗАМІНИ".
| + | |
− | | + | |
− | При виклику 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"]; then. "$ BASH_ENV"; fi
| + | |
− | | + | |
− | але при пошуку імені файлу не використовується значення змінної 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, якщо цей файл існує і доступний для читання. Командний інтерпретатор bash так не робить, якщо запущений як sh. Для відміни цієї дії можна використовувати опцію - norc, а за допомогою опції - rcfile можна змусити читати інший файл, але зазвичай демон rshd не задає ці опції командного інтерпретатору і не дозволяє їх вказати.
| + | |
− | | + | |
− | Якщо командний інтерпретатор запущений з ефективним ідентифікатором користувача (групи), не збігається з реальним ідентифікатором користувача (групи), і не вказана опція-p, файли початкового запуску не читаються, функції командного інтерпретатора не успадковуються з середовища, мінлива SHELLOPTS, якщо вона задана в середовищі, ігнорується, а ефективний ідентифікатор користувача встановлюється рівним реальному. Якщо при виклику задана опція-p, файли початкового запуску теж не читаються, але ефективний ідентифікатор користувача не скидається.
| + | |
− | ВИЗНАЧЕННЯ
| + | |
− | | + | |
− | У частині документа використовуються наступні терміни.
| + | |
− | пробіл
| + | |
− | Символ пробілу або символ табуляції.
| + | |
− | | + | |
− | слово
| + | |
− | Послідовність символів, що розглядається командним інтерпретатором як єдине ціле. Також називається лексемою (token).
| + | |
− | | + | |
− | ім'я
| + | |
− | Слово, що складається тільки з алфавітноціфрових символів і символів підкреслення, і починається з букви або символу підкреслення. Також називається ідентифікатором.
| + | |
− | | + | |
− | метасимвол
| + | |
− | Символ, що розділяє слова, якщо він не замаскований. Один з таких символів:
| + | |
− | | &; () <> Пробіл табуляція
| + | |
− | | + | |
− | | + | |
− | керуючий оператор
| + | |
− | Лексема, що виконує функцію управління. Це один з наступних символів:
| + | |
− | | | & & &;;; () | <Переклад рядка>
| + | |
− | Зарезервовані слова
| + | |
− | | + | |
− | Зарезервованими є слова, що мають спеціальне значення для командного інтерпретатора. Наступні слова розпізнаються як зарезервовані, якщо не замасковані і є або першим словом простий команди (див. "СИНТАКСИС КОМАНД" нижче), якою третьою словом команди case або for:
| + | |
− | ! case do done elif else esac fi for function if in select then until while {} time [[]]
| + | |
− | СИНТАКСИС КОМАНД
| + | |
− | Прості команди
| + | |
− | | + | |
− | Проста команда - це завершується керуючим оператором послідовність необов'язкових присвоювання значень змінним, після яких йдуть слова, розділені пробілами, і перенаправлення потоків. Перше слово задає команду, яку треба виконати. Решта слова передаються як аргументи викликаної команді.
| + | |
− | | + | |
− | Повертаним значенням простої команди є її статус виходу, або 128 + n, якщо команда завершена сигналом n.
| + | |
− | Конвеєри
| + | |
− | | + | |
− | Конвеєр - це послідовність однієї або більше команд, розділених символом |. Конвеєр має наступний формат: | + | |
| [Time [-p]] [! ] Команда [| команда2 ... ] | | [Time [-p]] [! ] Команда [| команда2 ... ] |
− |
| |
− | Стандартний вихідний потік команди зв'язується зі стандартним вхідним потоком команди2. Цей зв'язок виконується раніше, ніж будь-які перенаправлення, що задаються командою (див. "перенаправлення" нижче).
| |
− |
| |
− | Якщо перед конвеєром зазначено зарезервоване слово!, Статус виходу такого конвеєра є логічним запереченням статусу виходу останньої команди. В іншому випадку, статус виходу конвеєра збігається зі статусом виходу останньої команди. Перш, ніж повертати значення, командний інтерпретатор чекає завершення всіх команд в конвеєрі.
| |
− |
| |
− | Якщо перед конвеєром йде зарезервоване слово time, після завершення конвеєра видається загальне, користувальницьке і системний час, витрачений на його виконання. Опція-p змінює формат виводу на задається стандартом POSIX. Мінлива TIMEFORMAT може задавати рядок формату видачі інформації про час; див. опис змінної TIMEFORMAT в розділі "Змінні командного інтерпретатора" нижче.
| |
− |
| |
| Кожна команда в конвеєрі виконується як окремий процес (тобто у породженому інтерпретаторі). | | Кожна команда в конвеєрі виконується як окремий процес (тобто у породженому інтерпретаторі). |
− | Списки
| |
− |
| |
− | Список - це послідовність одного або більше конвеєрів, розділених одним з операторів;, &, & & або | |, і не обов'язково завершується одним з операторів;, & або <переклад рядка>.
| |
− |
| |
− | З цих операторів списку & & і | | мають рівний пріоритет, причому більший, ніж, і &, що теж мають рівний пріоритет.
| |
− |
| |
− | Якщо команда завершується керуючим оператором &, інтерпретатор виконує команду у фоновому режимі в породженому інтерпретаторі. Командний інтерпретатор не чекає завершення команди, а статус виходу в цьому випадку - 0. Команди, розділені; виконуються послідовно; командний інтерпретатор чекає черзі завершення кожної з команд. Статус повернення списку в цьому випадку співпадає зі статусом повернення останньої виконаної команди.
| |
− |
| |
− | Керуючі оператори & & і | | позначають, відповідно, І-списки та АБО-списки. І-список має вигляд
| |
− | команда & & команда2
| |
− |
| |
− | Команда2 виконується тільки і якщо тільки команда повернула статус виходу нуль.
| |
− |
| |
− | АБО-список має вигляд
| |
− | команда | | команда2
| |
− |
| |
− | Команда2 виконується тільки і якщо тільки команда повернула ненульовий статус виходу. І-і АБО-списки повертають статус останньої команди, виконаної в списку.
| |
− | Складові команди
| |
− |
| |
− | Складовими називають наступні команди:
| |
− | (Список)
| |
− | Список виконується у породженому командному інтерпретаторі. Присвоювання змінним і вбудовані команди, що впливають на середу командного інтерпретатора, не діють після завершення команди. Статусом повернення є статус виходу списку.
| |
− |
| |
− | {Список;}
| |
− | Список просто виконується в середовищі поточного командного інтерпретатора. Список повинен завершуватися перекладом рядки або крапкою з комою. Цю команду називають командою угруповання. Статусом повернення є статус виходу списку.
| |
− |
| |
− | ((Вираз))
| |
− | Вираз обчислюється відповідно до правил, описаними нижче у розділі "обчислення арифметичних виразів". Якщо вираз має ненульове значення, статус повернення дорівнює 0; в іншому випадку - 1. Ця конструкція еквівалентна конструкції let "вираз".
| |
− |
| |
− | [[Вираз]]
| |
− | Повертає статус 0 або 1 залежно від значення зазначеного умовного виразу. Вирази складаються з компонентів, описаних нижче в розділі "УМОВНІ ВИРАЖЕННЯ". Розподіл слів і підстановка імен файлів в словах між [[і]] не виконується; виконується заміна тильди, підстановка значень параметрів і змінних, арифметична підстановка, підстановка результатів команд і підстановка процесів, а також видалення лапок.
| |
− |
| |
− | При використанні операторів == і! = Рядок праворуч оператора вважається зразком і зіставляється за правилами, описаним нижче в підрозділі "Зіставлення зі зразком". Повертається значення 0 якщо рядок, відповідно, зіставляється і не зіставляється із зразком, та 1 в іншому випадку. Будь-яка частина зразка може бути взята в лапки, щоб зіставлення з нею йшло буквально.
| |
− |
| |
− | Вирази можна комбінувати з допомогою наступних операторів, перерахованих в порядку зниження пріоритету:
| |
− | (Вираз)
| |
− | Повертає значення виразу. Круглі дужки можна використовувати для зміни звичайного пріоритету операторів.
| |
− |
| |
− | ! вираз
| |
− | Істинно, якщо вираз помилково.
| |
− |
| |
− | вираз1 & & вираз2
| |
− | Істинно, якщо істинні обидва вирази, вираз1 і вираз2.
| |
− |
| |
− | вираз1 | | вираз2
| |
− | Істинно, якщо істинно вираз1 або вираз2.
| |
− |
| |
− | Оператори & & і | | не обчислюють вираз2, якщо значення вираженія1 достатньо для визначення значення, що повертається всього умовного виразу.
| |
− |
| |
− | for ім'я [in спісок_слов]; do список; done
| |
− | Виконуються підстановки в спіске_слов після in, в результаті чого виходить список елементів. Змінна з відповідним ім'ям послідовно отримує значення кожного елемента цього списку, і щоразу виконується список. Якщо слово in не вказано, команда for виконує список для кожного встановленого позиційного параметра (див. розділ "ПАРАМЕТРИ" нижче). Сатусом повернення є статус виходу останньої виконаної команди. Якщо в результаті підстановки елементів спіска_слов після in виходить порожній список, команди не виконуються і повертається статус 0.
| |
− |
| |
− | select ім'я [in спісок_слов]; do список; done
| |
− | Виконуються підстановки в спіске_слов після in, в результаті чого виходить список елементів. Набір отриманих після підстановки слів видається в стандартний потік помилок, причому перед кожним елементом видається його порядковий номер. Якщо слово in не вказано, видаються встановлені позиційні параметри (див. розділ "ПАРАМЕТРИ" нижче). Потім видається запрошення PS3 і читається рядок зі стандартного вхідного потоку. Якщо цей рядок містить число, відповідне одному з виданих слів, то змінна ім'я отримує його значення. Якщо рядок порожній, слова і запрошення видаються знову. Якщо прочитаний символ кінця файлу (EOF), команда заврешается. При введенні будь-якого іншого значення мінлива ім'я отримує пусте значення. Прочитана рядок зберігається у змінній REPLY. Список виконується після кожного вибору, поки не буде виконана команда break або return. Статусом виходу команди select є статус виходу останньої команди у списку, або 0, якщо жодна команда не була виконана.
| |
− |
| |
− | case слово in [(зразок [| зразок] ...) список;;] ... esac
| |
− | Команда case спочатку підставляє значення слова і намагається його зіставити по черзі з кожним зразком, використовуючи ті ж правила зіставлення, що і для імен файлів (див. підрозділ "Підстановка імен файлів"). Якщо знайдено сопоставляющий зразок, виконується відповідний список. Після знаходження першого зіставлення подальше зіставлення не виконується і команда завершується. Статус виходу дорівнює 0, якщо жоден зразок не зіставити. В іншому випадку, він дорівнює статусу виходу останньої виконаної команди з відповідного списку.
| |
− |
| |
− | if список; then список; [elif список; then список;] ... [Else список;] fi
| |
− | Виконується список після if. Якщо його статус виходу - 0, виконується список після then. В іншому випадку, виконується послідовно список в черговий конструкції elif, і якщо його статус виходу - 0, виконується відповідний список після then і команда завершується. Якщо всі конструкції elif перевірені і жоден зі списків не повернув статус 0, виконується список після else, якщо ця конструкція задана. Статусом виходу є статус виходу останньої виконаної команди або 0, якщо жодна з умов не виявилося істинним.
| |
− |
| |
− | while список; do список; done
| |
− | until список; do список; done
| |
− | Команда while циклічно виконує список після do, поки остання команда списку повертає статус виходу 0. Команда until ідентична команді while, але умова завершення - протилежно; список після do виконується, поки остання команда списку повертає ненульовий статус виходу. Статусом виходу команд while і until є статус виходу останньої виконаної команди списку або 0, якщо жодна команда не виконана.
| |
− |
| |
− | [Function] ім'я () {список;}
| |
− | Ця команда визначає функцію із зазначеним ім'ям. Тіло функції утворює список команд між фігурними дужками {і}. Цей список виконується кожного разу, коли ім'я функції вказується як ім'я простий команли. Статусом виходу функції є статус виходу останньої команди, виконаної в тілі функції. (Див. "ФУНКЦІЇ" нижче.)
| |
− |
| |
− | КОМЕНТАРІ
| |
− |
| |
− | У неінтерактивному командному інтерпретаторі або в інтерактивному з включеною опцією interactive_comments вбудованої команди shopt (див. розділ "ВБУДОВАНІ команди інтерпретатор" нижче), слово, що починаються символом #, тягне ігнорування цього слова і наступних символів у рядку. Інтерактивний командний інтерпретатор з не включеною опцією interactive_comments не допускає використання коментарів. Опція interactive_comments за замовчуванням включається в інтерактивних командних інтерпретатора.
| |
− | МАСКУВАННЯ
| |
− |
| |
− | Маскування (quoting) використовується для скасування спеціального значення для командного інтерпретатора певних символів або слів. Маскування можна використовувати для скасування специфічної обробки спеціальних символів, для запобігання розпізнавання зарезервованих слів, а також для запобігання підстановки параметрів.
| |
− |
| |
− | Кожен з метасимволів, перерахованих вище в розділі "ВИЗНАЧЕННЯ", має спеціальне значення для командного інтерпретатора і повинен маскуватися, якщо використовується буквально. Є три механізми маскування: символ маскування (escape character), одиночні лапки і подвійні лапки.
| |
− |
| |
− | Незамасковані зворотна коса риска (\) є символом маскування. Він вимагає використовувати наступний за ним символ (за винятком переведення рядка) буквально. Якщо введена пара символів \ <переведення рядка> та сама зворотна коса не замаскований, ця пара обробляється як ознака продовження рядка (тобто вона видаляється з вхідного потоку і, по суті, ігнорується).
| |
− |
| |
− | Усі символи в одиночних лапках використовуються буквально. Символ одиночній лапки (апостроф) не повинен вказуватися між поодинокими лапками, навіть якщо він передує зворотної косою.
| |
− |
| |
− | Символи в подвійних лапках використовуються буквально, за винятком символів $, `і \. Символи $ і `в подвійних лапках мають те ж спеціальне значення. Зворотна коса має спеціальне значення тільки якщо після неї йде один з наступних символів: $, `,", \ або <переклад рядка>. Подвійну лапки можна вказувати в подвійних лапках, замаскувавши зворотної косою.
| |
− |
| |
− | Спеціальні параметри * і @ мають спеціальне значення за умов згадування в подвійних лапках (див. розділ "ПАРАМЕТРИ" нижче).
| |
− |
| |
− | Слова виду $ 'рядок' обробляються особливим образомy. Слово замінюється рядком, в якій упереджені зворотної косою символи замінюються відповідно до стандарту ANSI C. Керуючі послідовності, що починаються зі зворотної косою, декодуються наступним чином: \ a тривога (дзвінок)
| |
− | \ B забій
| |
− | \ E керуючий символ
| |
− | \ F прогін сторінки (form feed)
| |
− | \ N переклад рядка (new line)
| |
− | \ R carriage return (повернення каретки)
| |
− | \ T табуляція
| |
− | \ V вертикальна табудяція
| |
− | \ \ Зворотна коса
| |
− | \ Nnn символ, ASCII-код якого збігається з вісімковим значенням nnn (від однієї до трьох цифр)
| |
− | \ Xnnn символ, ASCII-код якого збігається з шістнадцятковим значенням nnn (від однієї до трьох цифр)
| |
| | | |
| + | Список - це послідовність одного або більше конвеєрів, розділених одним з операторів ;, &, & & або | | |
| | | |
− | Перетворений результат поміщається в одиночні лапки, як якщо б символу долара просто не було.
| + | '''Коментарі''' |
| | | |
− | Рядок у подвійних лапках, перед якою йде символ долара ($), буде перетворена відповідно до поточної локаллю. Якщо поточна локаль - C або POSIX, символ долара ігнорується. Якщо рядок перетворена і замінена, результат поміщається в подвійні лапки.
| + | Слово, що починаються символом #, тягне ігнорування цього слова і наступних символів у рядку. |
Bash - командний інтерпретатор що був створений Фондом вільно поширюваного програмного забезпечення у відповідності до стандарту IEEE POSIX. Призначений для виконання команд, прочитаних ним зі стандартного вхідного потоку або з файлу. Також включає в себе корисні засоби командних інтерпретаторів Korn і C.
Проста команда - це завершувана керуючим оператором послідовність необов'язкових присвоювань значень змінним, після яких йдуть слова, розділені пробілами, і перенаправлення потоків. Перше слово задає команду, яку треба виконати. Решта слів передаються як аргументи викликаної команді.
Значенням що повертається простої команди є її статус виходу, або 128+n, якщо команда завершена сигналом n.
Конвеєр - послідовність однієї або більше команд, розділених символом |. Конвеєр має наступний формат:
Кожна команда в конвеєрі виконується як окремий процес (тобто у породженому інтерпретаторі).
Список - це послідовність одного або більше конвеєрів, розділених одним з операторів ;, &, & & або | |
Слово, що починаються символом #, тягне ігнорування цього слова і наступних символів у рядку.