Команда Linux удар являетсяш-компонентный интерпретатор языка команд, который выполняет команды, считанные со стандартного ввода или из файла.удар также включает полезные функции из оболочек Korn и C (КШ а такжеCSH).
Параметры Bash
В дополнение к односимвольным вариантам оболочки, описанным в описаниизадавать встроенная команда,удар интерпретирует следующие параметры при его вызове:
- -с строка: Если-с параметр присутствует, тогда команды считываются из строка , Если есть аргументы после строка , они присваиваются позиционным параметрам, начиная с$0.
- -я: Если-я опция присутствует, оболочка интерактивный .
- -l: Делатьудар действовать так, как если бы он был вызван в качестве оболочки входа.
- -р: Если-р опция присутствует, оболочка становится ограничено.
- -s: Если-s параметр присутствует, или если после обработки параметров не осталось аргументов, тогда команды считываются со стандартного ввода. Эта опция позволяет устанавливать позиционные параметры при вызове интерактивной оболочки.
- -D: Список всех строк с двойными кавычками, которым предшествует$ печатается на стандартном выходе. Это строки, которые подвержены языковому переводу, когда текущий язык не являетсяС или жеPOSIX, Это подразумевает:N вариант; никакие команды не будут выполнены.
- - + O shopt_option : shopt_option является одним из вариантов оболочки, принятыхshopt встроенный. Если shopt_option настоящее,-О устанавливает значение этого параметра и+ O заставляет его отказаться. Если shopt_option не указывается, имена и значения параметров оболочки, принятыеshopt печатаются на стандартном выходе. Если опция вызова + O, вывод отображается в формате, который может быть повторно использован как вход.
- --: -- сигнализирует о завершении опций и отключает дальнейшую обработку параметров. Любые аргументы после-- рассматриваются как имена файлов и аргументы. Аргумент- эквивалентно--.
удар также интерпретирует несколько многосимвольных опций. Эти параметры должны отображаться в командной строке перед распознаванием односимвольных опций:
- --dump-по-строк: Эквивалентно-D, но выход находится в GNU Gettext ро (переносного объекта).
- --dump-строки: Эквивалентно-D.
- --Помогите: Отобразить сообщение об использовании на стандартном выходе и успешно выйти.
- --init-файл: файл а также --rcfile файл : Выполнять команды из файл вместо стандартного файла личной инициализации ~ / .Bashrc если оболочка является интерактивной.
- --авторизоваться: Эквивалентно-l.
- --noediting: Не используйте GNUReadline библиотека для чтения командных строк, когда оболочка является интерактивной.
- --noprofile: Не читать системный файл автозагрузки / И т.д. / профиль или любые личные файлы инициализации ~ / .Bash_profile , ~ / .Bash_login , или же ~ / .Profile , По умолчанию,удар читает эти файлы, когда он вызывается в качестве оболочки входа.
- --norc: Не читать и выполнять личный файл инициализации ~ / .Bashrc если оболочка является интерактивной. Этот параметр включен по умолчанию, если оболочка вызывается какш.
- --posix: Изменить поведениеудар где операция по умолчанию отличается от стандарта POSIX, чтобы соответствовать стандарту ( режим posix ).
- --restricted: Оболочка становится ограниченной.
- --rpm-требует: Создайте список файлов, необходимых для запуска сценария оболочки. Это подразумевает «-n» и подвержено тем же ограничениям, что и проверка проверки времени компиляции; Backticks, тесты и оценки не анализируются, поэтому некоторые зависимости могут быть пропущены.
- --подробный: Эквивалентно-v.
- --версия: Показывать информацию о версии для этого экземпляраудар на стандартном выходе и выходе успешно.
аргументы
Если аргументы остаются после обработки опций, и ни-с ни-s option, первый аргумент считается именем файла, содержащего команды оболочки. Если удар вызывается таким образом,$0 устанавливается на имя файла, а позиционные параметры - на остальные аргументы.удар читает и выполняет команды из этого файла; затем выходит.ударСтатус выхода - это статус выхода последней команды, выполняемой в скрипте. Если никакие команды не выполняются, статус выхода равен 0. Сначала делается попытка открыть файл в текущем каталоге, а если файл не найден, то оболочка ищет каталоги вДОРОЖКА для скрипта.
мольба
оболочка входа это тот, чей первый символ аргумента нуль является-, или один начался с--авторизоваться вариант.
интерактивный shell запускается без аргументов без опционов и без-с вариант, стандартный ввод и вывод которого соединены с терминалами, как определено isatty (3), или один начался с-я вариант.PS1 установлен и $- включает, если bash является интерактивным, позволяя сценарию оболочки или файлу запуска проверять это состояние.
В следующих параграфах описывается, какудар выполняет свои файлы запуска. Если какой-либо из файлов существует, но не может быть прочитан,удар сообщает об ошибке. Тильды расширены в именах файлов, как описано в Tilde Expansion.
когдаудар вызывается как интерактивная оболочка входа или как неинтерактивная оболочка с--авторизоваться , он сначала считывает и выполняет команды из файла / И т.д. / профиль , если этот файл существует. После прочтения этого файла он ищет ~ / .Bash_profile , ~ / .Bash_login , а также ~ / .Profile , в этом порядке и считывает и выполняет команды из первого, который существует и читается.--noprofile параметр может использоваться, когда оболочка начинает блокировать это поведение.
Когда оболочка входа завершается,удар считывает и выполняет команды из файла ~ / .Bash_logout , если он существует.
Когда запущена интерактивная оболочка, не являющаяся оболочкой входа,удар считывает и выполняет команды из ~ / .Bashrc , если этот файл существует. Это может быть заблокировано с помощью--norc вариант.--rcfile файл вариант заставитудар читать и выполнять команды из файл вместо ~ / .Bashrc .
когдаудар запускается неинтерактивно - для запуска сценария оболочки, например, - он ищет переменнуюBASH_ENV в среде, расширяет свое значение, если оно появляется там, и использует расширенное значение в качестве имени файла для чтения и выполнения.удар ведет себя так, как если бы выполнялась следующая команда:
если -n "$ BASH_ENV"; затем . "$ BASH_ENV"; фи
но значениеДОРОЖКА переменная не используется для поиска имени файла. Еслиудар вызывается с именемш, он пытается имитировать начальное поведение исторических версийш насколько это возможно, хотя и соответствует стандарту POSIX. При вызове как интерактивной оболочки входа или неинтерактивной оболочки с--авторизоваться , он сначала пытается прочитать и выполнить команды из / И т.д. / профиль а также ~ / .Profile , в этой последовательности.--noprofile вариант может использоваться для подавления такого поведения. При вызове в качестве интерактивной оболочки с именем ш, удар ищет переменнуюENV, расширяет свое значение, если оно определено, и использует расширенное значение как имя файла для чтения и выполнения. Поскольку оболочка вызвана какш не пытается читать и выполнять команды из любых других файлов запуска,--rcfile опция не действует. Неинтерактивная оболочка, вызываемая именемш не пытается прочитать другие файлы запуска. При вызове какш, удар входит POSIX после чтения файлов запуска. когдаудар запускается в POSIX режиме, как в случае--posix командной строки, он соответствует стандарту POSIX для файлов запуска. В этом режиме интерактивные оболочки расширяютENV переменная и команды считываются и выполняются из файла, чье имя является расширенным значением. Никаких других загрузочных файлов не читается. удар пытается определить, когда он запускается удаленным демонами оболочки, обычно РСХД , Если удар определяет, что он управляется РСХД , он считывает и выполняет команды из ~ / .Bashrc , если этот файл существует и доступен для чтения. Он не будет делать этого, если будет вызван какш,--norc вариант может использоваться для подавления этого поведения, и--rcfile параметр может использоваться для принудительного чтения другого файла, но РСХД обычно не вызывает оболочку с этими параметрами или позволяет их указывать. Если оболочка запускается с эффективным идентификатором пользователя (группы), не равным идентификатору реального пользователя (группы), а-п опция не предоставляется, файлы запуска не читаются, функции оболочки не наследуются от среды,SHELLOPTS переменная, если она появляется в среде, игнорируется, а действительный идентификатор пользователя устанавливается на настоящий идентификатор пользователя. Если-п опция предоставляется при вызове, поведение запуска одинаково, но эффективный идентификатор пользователя не сбрасывается. В остальной части этого документа используются следующие определения: Зарезервированные слова это слова, которые имеют особое значение для оболочки. Следующие слова распознаются как зарезервированные при некотировании и либо первое слово простой команды, либо третье словоделоили жеза команда: ! case do done elif else esac fi для функции, если в select затем до while {} time простая команда представляет собой последовательность необязательных переменных, за которыми следуютпустой-раздельные слова и переадресации и оператор управления , Первое слово указывает команду, которая должна быть выполнена, и передается как аргумент нуль. Остальные слова передаются в качестве аргументов вызываемой команды. Возвращаемое значение простая команда это его статус выхода или 128 + N если команда завершена сигналом N . трубопровод представляет собой последовательность из одной или нескольких команд, разделенных символом|, Формат для конвейера - время -п ! команда | command2 … . Стандартный выход команда подключается через трубу к стандартному входу command2 , Это соединение выполняется перед любыми перенаправлениями, указанными в команде. Если зарезервированное слово! предшествует конвейеру, статус выхода этого конвейера является логическим NOT статуса выхода последней команды. В противном случае статус конвейера является статусом выхода последней команды. Оболочка ждет завершения всех команд в конвейере перед возвратом значения. Есливремя зарезервированное слово предшествует конвейеру, истекшее, а также время пользователя и системы, затраченное на его выполнение, сообщаются, когда конвейер завершается.-п опция изменяет формат вывода на указанный в POSIX.TIMEFORMAT переменная может быть установлена в строку формата, которая указывает, как должна отображаться информация о времени. Каждая команда в конвейере выполняется как отдельный процесс (например, в подоболочке). список представляет собой последовательность одного или нескольких трубопроводов, разделенных одним из операторов;, &, &&, или же||, и необязательно завершается одним из;, &, или же Из этих операторов списка,&& а также|| имеют равный приоритет, за которым следует; а также&, которые имеют одинаковый приоритет. Последовательность одной или нескольких строк новой строки может отображаться в список вместо точки с запятой, чтобы разграничить команды. Если команда завершена оператором управления&, оболочка выполняет команду в фон в подоболочке. Оболочка не ждет завершения команды, а статус возврата - 0. Команды, разделенные; выполняются последовательно; оболочка ожидает, что каждая команда будет завершена по очереди. Статус возврата - это статус выхода последней выполненной команды. Операторы управления&& а также|| обозначают списки И и списки ИЛИ соответственно. Список AND имеет форму command1 && command2 command2 выполняется, если и только если, command1 возвращает статус выхода 0. Список OR имеет форму command1 || command2 command2 выполняется тогда и только тогда, когда command1 возвращает ненулевой статус выхода. Возвращаемым статусом списков AND и OR является статус выхода последней команды, выполненной в списке. составная команда является одним из следующих: (список) : список выполняется в подоболочке. Переменные назначения и встроенные команды, которые влияют на среду оболочки, не остаются в силе после завершения команды. Статус возврата - это статус выхода список . {list; } : список просто выполняется в текущей среде оболочки. список должен быть завершен символом новой строки или точкой с запятой. Это называется групповая команда , Статус возврата - это статус выхода список , Обратите внимание, что в отличие от метасимволов( а также), { а также} являются зарезервированные слова и должно происходить, когда зарезервированное слово разрешено распознавать. Поскольку они не вызывают прерывания слова, они должны быть отделены от список по пробелам. ((Выражение)) : выражение оценивается в соответствии с правилами, описанными в Арифметическая оценка. Если значение выражения не равно нулю, статус возврата равен 0; в противном случае статус возврата равен 1. Это в точности эквивалентнопозволять ' выражение '. выражение : Вернуть статус 0 или 1 в зависимости от оценки условного выражения выражение , Выражения состоят из праймериз, описанных ниже Условные выражения. Разделение слов и расширение имени пути не выполняются над словами между а также; расширение тильды, расширение параметров и переменных, арифметическое расширение, подстановка команд, замещение процессов и удаление цитат. Когда== а также!= используются операторы, строка справа от оператора считается шаблоном и согласована в соответствии с правилами, описанными вСоответствие шаблону, Возвращаемое значение равно 0, если строка соответствует или не соответствует шаблону, соответственно, и 1 в противном случае. Любая часть шаблона может быть процитирована, чтобы заставить ее соответствовать строке. Выражения могут быть объединены с использованием следующих операторов, перечисленных в порядке убывания приоритета: && а также|| операторы не оценивают выражения2 если значение выражение1 достаточно для определения возвращаемого значения всего условного выражения. В неинтерактивной оболочке или интерактивной оболочке, в которой interactive_comments вариант дляshopt builtin включен, слово, начинающееся с# вызывает игнорирование слова и всех остальных символов в этой строке. Интерактивная оболочка безinteractive_comments опция enabled не позволяет комментировать. interactive_comments опция включена по умолчанию в интерактивных оболочках. квотирование используется для удаления специального значения определенных символов или слов в оболочке. Цитирование может использоваться для отключения специальной обработки для специальных символов, для предотвращения сохранения зарезервированных слов как таковых и предотвращения расширения параметров. Каждый из метасимволы перечисленных вышеОпределения имеет особое значение для оболочки и должен быть указан, если он должен представлять себя. Когда используются средства расширения истории команд, расширение истории характер, обычно!, должны быть указаны для предотвращения расширения истории. Существует три механизма цитирования: escape-символ , одинарные кавычки и двойные кавычки. Неотображаемая обратная косая черта () это escape-символ , Он сохраняет буквальное значение следующего символа, следующего за ним, за исключением Вложения символов в одинарных кавычках сохраняют буквальное значение каждого символа в кавычках. Одинарная кавычка может отсутствовать между одинарными кавычками, даже если ей предшествует обратная косая черта. Вложение символов в двойные кавычки сохраняет буквальное значение всех символов в кавычках, за исключением$, ', а также, Персонажи$ а также' сохраняют свое особое значение в двойных кавычках. Обратная косая черта сохраняет свое особое значение только тогда, когда следует один из следующих символов:$, ', ', , или же Специальные параметры* а также@ имеют особое значение, когда в двойных кавычках. Слова формы$' строка »рассматриваются специально. Слово расширяется до строка , с замененными обратными слэшами символами, указанными в стандарте ANSI C. Последующие последовательности обратной косой черты, если они имеются, декодируются следующим образом: Расширенный результат одинарный, как будто знак доллара не присутствовал. Строка с двойными кавычками, которой предшествует знак доллара ($) приведет к тому, что строка будет переведена в соответствии с текущей локалью. Если текущий языкС или жеPOSIX, знак доллара игнорируется. Если строка переводится и заменяется, замена выполняется двойным образом. параметр это объект, который хранит значения. Это может быть название , номер или один из специальных символов, перечисленных вСпециальные параметры, Для целей оболочки, переменная является параметром, обозначаемым название , Переменная имеет значение и ноль или более атрибуты , Атрибуты назначаются с помощьюобъявлять встроенная команда. Параметр устанавливается, если ему присвоено значение. Нулевая строка является допустимым значением. Как только переменная установлена, она может быть отменена только с помощьюснята с охраны встроенная команда. переменная может быть назначено с помощью формулировки формы: название = значение Если значение не задано, переменной присваивается пустая строка. Все ценности подвергаются расширению тильды, расширению параметров и переменных, замене команд, арифметическому расширению и удалению цитат. Если переменная имеетцелое число набора атрибутов, тогда значение подлежит арифметическому расширению, даже если расширение $ ((…)) не используется. Разделение слов не выполняется, за исключением'$@' как объяснено вСпециальные параметры, Расширение имени пути не выполняется. Операторы присваивания могут также отображаться в качестве аргументовобъявлять, верстать, экспорт, только для чтения, а также местный встроенные команды. позиционный параметр - это параметр, обозначенный одной или несколькими цифрами, отличными от одной цифры 0. Позиционные параметры назначаются из аргументов оболочки при ее вызове и могут быть переназначены с использованиемзадавать встроенная команда. Позиционные параметры не могут присваиваться операторам присваивания. Позиционные параметры временно заменяются при выполнении функции оболочки. Когда расширенный позиционный параметр, состоящий из более чем одной цифры, должен быть заключен в фигурные скобки. Оболочка рассматривает несколько параметров специально. К этим параметрам можно отнести только ссылки; присвоение им не допускается. Следующие переменные задаются оболочкой: BASH: Расширяется до полного имени файла, используемого для вызова этого экземпляраудар. BASH_VERSINFO: Переменная массива readonly, члены которой содержат информацию о версии для этого экземпляра удар, Значения, назначенные членам массива, следующие: BASH_VERSION: Расширяется до строки, описывающей версию этого экземпляраудар. COMP_CWORD: Индекс в$ {COMP_WORDS} слова, содержащего текущую позицию курсора. Эта переменная доступна только в функциях оболочки, вызванных программируемыми средствами завершения. COMP_LINE: Текущая командная строка. Эта переменная доступна только в функциях оболочки и внешних командах, вызываемых программируемыми средствами завершения. COMP_POINT: Индекс текущей позиции курсора относительно начала текущей команды. Если текущая позиция курсора находится в конце текущей команды, значение этой переменной равно$ {# COMP_LINE}, Эта переменная доступна только в функциях оболочки и внешних командах, вызываемых программируемыми средствами завершения. COMP_WORDS: Переменная массива, состоящая из отдельных слов в текущей командной строке. Эта переменная доступна только в функциях оболочки, вызванных программируемыми средствами завершения. DIRSTACK: Переменная массива, содержащая текущее содержимое стека каталога. Каталоги отображаются в стеке в том порядке, в котором они отображаютсякаталоги встроенный. Присвоение членам этой переменной массива может использоваться для изменения каталогов уже в стеке, ноPushd а такжеPOPD встроенные должны использоваться для добавления и удаления каталогов. Присвоение этой переменной не изменит текущий каталог. ЕслиDIRSTACK не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается. EUID: Расширяется до эффективного идентификатора пользователя текущего пользователя, инициализированного при запуске оболочки. Эта переменная является только для чтения. имя_функции: Имя любой выполняющейся в данный момент функции оболочки. Эта переменная существует только при выполнении функции оболочки. Заданияимя_функции не имеют эффекта и возвращают статус ошибки. Еслиимя_функции не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается. ГРУППЫ: Переменная массива, содержащая список групп, членом которых является текущий пользователь. ЗаданияГРУППЫ не имеют эффекта и возвращают статус ошибки. ЕслиГРУППЫ не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается. HISTCMD: Номер истории или индекс в списке истории текущей команды. ЕслиHISTCMD не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается. HOSTNAME: Автоматически назначается имя текущего хоста. HOSTTYPE: Автоматически устанавливает строку, которая однозначно описывает тип машины, на которойудар выполняет. Значение по умолчанию зависит от системы. LINENO: Каждый раз, когда этот параметр ссылается, оболочка заменяет десятичное число, представляющее текущий номер последовательной строки (начиная с 1) внутри скрипта или функции. Если нет в скрипте или функции, значение, замененное не гарантировано. ЕслиLINENO не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается. MACHTYPE: Автоматически устанавливает строку, полностью описывающую тип системы, на которойудар выполняется в стандартном GNU CPU-компания-система формат. Значение по умолчанию зависит от системы. OLDPWD: Предыдущий рабочий каталог, заданныйCD команда. OPTARG: Значение последнего аргумента параметра, обрабатываемогоgetopts встроенная команда. OPTIND: Индекс следующего аргумента, который должен обрабатыватьсяgetopts встроенная команда. OSTYPE: Автоматически устанавливает строку, описывающую операционную систему, на которойудар выполняет. Значение по умолчанию зависит от системы. PIPESTATUS: Переменная массива, содержащая список значений статуса выхода из процессов в наиболее недавно выполненном конвейере переднего плана, который может содержать только одну команду. PPID: Идентификатор процесса родителя оболочки. Эта переменная является только для чтения. PWD: Текущий рабочий каталог, заданныйCD команда. RANDOM: Каждый раз, когда этот параметр ссылается, генерируется случайное целое число от 0 до 32767. Последовательность случайных чисел может быть инициализирована путем присвоения значения RANDOM, ЕслиRANDOM не работает, он теряет свои особые свойства, даже если он впоследствии перезагружается. ОТВЕТИТЬ: Установите на строку ввода, считаннуючитать встроенная команда, когда аргументы не
Определения
Зарезервированные слова
Грамматика Шесть: Простые команды
Трубопроводы
Списки
Составные команды
Комментарии
квотирование
параметры
Позиционные параметры
Специальные параметры
Переменные оболочки




