АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

ash - Интернет в облаке

Запустите ash в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда ash, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


тире - интерпретатор команд (оболочка)

СИНТАКСИС


тире [-aCefnuvxIimqVEbp] [+ aCefnuvxIimqVEbp] [-o имя_опции] [+o имя_опции]
[командный_файл [аргумент ...]]
тире -c [-aCefnuvxIimqVEbp] [+ aCefnuvxIimqVEbp] [-o имя_опции] [+o имя_опции]
командная_строка [имя_команды [аргумент ...]]
тире -s [-aCefnuvxIimqVEbp] [+ aCefnuvxIimqVEbp] [-o имя_опции] [+o имя_опции]
[аргумент ...]

ОПИСАНИЕ


тире - стандартный интерпретатор команд для системы. Текущая версия тире В
процесс изменения в соответствии со спецификациями POSIX 1003.2 и 1003.2a для
оболочка. Эта версия имеет множество функций, которые делают ее похожей в некоторых отношениях на
оболочку Korn, но это не клон оболочки Korn (см. КШ(1)). Только функции, обозначенные
POSIX и несколько расширений Berkeley включаются в эту оболочку. Этот человек
Страница не предназначена для использования в качестве учебного пособия или полной спецификации оболочки.

Обзор
Оболочка - это команда, которая читает строки из файла или терминала, интерпретирует их,
и обычно выполняет другие команды. Это программа, которая запускается, когда пользователь входит в систему.
в систему (хотя пользователь может выбрать другую оболочку с помощью чш(1) команда).
Оболочка реализует язык, который имеет конструкции управления потоком, макро-средство, которое
предоставляет множество функций в дополнение к хранению данных, а также встроенную историю и
возможности редактирования строки. Он включает в себя множество функций, облегчающих интерактивное использование, и имеет
преимущество в том, что интерпретирующий язык является общим как для интерактивных, так и для неинтерактивных
использовать (сценарии оболочки). То есть команды могут быть введены непосредственно в работающую оболочку или могут быть
помещается в файл, и файл может быть выполнен непосредственно оболочкой.

Вызов
Если аргументы отсутствуют и стандартный ввод оболочки подключен к терминалу (или
если -i установлен флаг), а -c вариант отсутствует, оболочка считается
интерактивная оболочка. Интерактивная оболочка обычно запрашивает перед каждой командой и обрабатывает
по-разному программировать и управлять ошибками (как описано ниже). При первом запуске
оболочка проверяет аргумент 0, и если он начинается с дефиса '-', оболочка также считается
оболочка входа в систему. Обычно это выполняется системой автоматически при первом входе пользователя в систему.
Оболочка входа в систему сначала считывает команды из файлов. / И т.д. / профиль и .профиль если они существуют.
Если переменная среды ENV установлена ​​при входе в интерактивную оболочку или установлена ​​в
.профиль оболочки входа в систему, оболочка затем считывает команды из файла с именем ENV.
Следовательно, пользователь должен размещать команды, которые должны выполняться только во время входа в систему, в
.профиль файл и команды, которые выполняются для каждой интерактивной оболочки внутри ENV
файл. Чтобы установить переменную ENV в какой-либо файл, поместите следующую строку в свой .профиль of
ваш домашний каталог

ENV = $ HOME / .shinit; экспорт ENV

заменив на «.shinit» любое имя файла по вашему желанию.

Если помимо параметров были указаны аргументы командной строки, то оболочка обрабатывает
первый аргумент как имя файла, из которого следует читать команды (сценарий оболочки), а
остальные аргументы устанавливаются как позиционные параметры оболочки ($ 1, $ 2 и т. д.).
В противном случае оболочка считывает команды со стандартного ввода.

Аргумент Список Обработка
Все однобуквенные параметры, которым присвоено соответствующее имя, могут использоваться в качестве аргумента.
до -o вариант. Набор -o имя указано рядом с опцией одной буквы в
описание ниже. Указание тире «-» включает параметр, а использование плюса «+»
отключает опцию. Следующие параметры можно установить из командной строки или с помощью набор
встроенный (описанный позже).

-a аллэкспорт Экспортируйте все переменные, присвоенные.

-c Читать команды из командная_строка операнд вместо
стандартный ввод. Специальный параметр 0 будет установлен из
имя_команды операнд и позиционные параметры ($ 1, $ 2 и т. д.)
устанавливается из оставшихся операндов аргумента.

-C никчемный Не перезаписывайте существующие файлы с помощью «>».

-e ошибочный выход Если не интерактивно, немедленно выйдите, если какая-либо непроверенная команда завершится ошибкой.
Статус выхода команды считается явно протестированным, если
команда используется для управления if, Элиф, в то время какили до; или если
команда является левым операндом «&&» или «||» оператор.

-f ноглоб Отключить раскрытие имени пути.

-n поехес Если не интерактивный, читать команды, но не выполнять их. Это
полезно для проверки синтаксиса сценариев оболочки.

-u существительное Напишите сообщение стандартной ошибке при попытке развернуть
переменная, которая не установлена, и если оболочка не интерактивна, выйдите
немедленно.

-v подробный Оболочка записывает свой ввод в стандартную ошибку при чтении. Полезный
для отладки.

-x xtrace Перед каждой командой записывайте стандартную ошибку (с предшествующим знаком '+').
выполняется. Полезно для отладки.

-I игнорирование Игнорировать EOF при вводе в интерактивном режиме.

-i интерактивный Заставить оболочку вести себя интерактивно.

-l Сделайте тире действующей, как если бы она была вызвана как оболочка входа в систему.

-m монитор Включите управление заданиями (устанавливается автоматически в интерактивном режиме).

-s STDIN Чтение команд со стандартного ввода (устанавливается автоматически, если нет файла
аргументы присутствуют). Этот параметр не действует, если установлен после
оболочка уже запущена (т.е. с набор).

-V vi Включите встроенный vi(1) редактор командной строки (отключает -E если это имеет
был установлен).

-E Emacs Включите встроенный Emacs(1) редактор командной строки (отключает -V если оно
был установлен).

-b уведомлять Включите асинхронное уведомление о завершении фонового задания.
(НЕ ВЫПОЛНЕНО для 4.4альфа)

-p собств Не пытайтесь сбросить эффективный uid, если он не совпадает с uid. Этот
не установлен по умолчанию, чтобы избежать неправильного использования setuid root
программы через система(3) или открывать(3).

лексический Структура
Оболочка считывает ввод в виде строк из файла и разбивает его на слова в
пробелы (пробелы и табуляции), а также в определенных последовательностях символов, которые являются специальными для
оболочка называется «операторами». Есть два типа операторов: управляющие операторы и
операторы перенаправления (их значение обсуждается позже). Ниже приводится список операторов:

Операторы управления:
& && (); ;; | ||

Операторы перенаправления:
<>> | << >> <&> & << - <>

квотирование
Цитирование используется для удаления специального значения определенных символов или слов в оболочке,
такие как операторы, пробелы или ключевые слова. Есть три типа цитирования: сопоставленное
одинарные кавычки, совпадающие двойные кавычки и обратная косая черта.

бэкслэш
Обратная косая черта сохраняет буквальное значение следующего символа, за исключением
⟨новая линия⟩. Обратная косая черта перед «новой строкой» рассматривается как продолжение строки.

Один Цитаты
Заключение символов в одинарные кавычки сохраняет буквальное значение всех символов.
(кроме одинарных кавычек, что делает невозможным использование одинарных кавычек в строке, заключенной в одинарные кавычки).

двойной Цитаты
Заключение символов в двойные кавычки сохраняет буквальное значение всех символов.
кроме знака доллара ($), обратной кавычки (`) и обратной косой черты (\). Обратная косая черта внутри двойных кавычек
исторически странно и служит для цитирования только следующих персонажей:
$ `" \ .
В противном случае он остается буквальным.

Зарезервированный Слова
Зарезервированные слова - это слова, которые имеют особое значение для оболочки и распознаются в
начало строки и после управляющего оператора. Следующие зарезервированные слова:

! elif fi в то время как чехол
иначе тогда {}
сделать сделано до тех пор, пока esac

Их значение обсуждается позже.

Псевдонимов
Псевдоним - это имя и соответствующее значение, установленное с помощью псевдоним(1) встроенная команда. В любое время
может появиться зарезервированное слово (см. выше), и после проверки зарезервированных слов оболочка
проверяет слово на соответствие псевдониму. Если это так, он заменяет его во вводе
поток со своим значением. Например, если существует псевдоним «lf» со значением «ls»
-F », затем ввод:

lf foobar ⟨возврат⟩

станет

ls -F foobar ⟨возврат⟩

Псевдонимы предоставляют наивным пользователям удобный способ создания сокращений для команд без
необходимость научиться создавать функции с аргументами. Их также можно использовать для создания
лексически непонятный код. Такое использование не рекомендуется.

Команды
Оболочка интерпретирует слова, которые она читает, в соответствии с языком, спецификация которого
выходит за рамки этой страницы руководства (см. BNF в документе POSIX 1003.2).
По сути, строка считывается, и если первое слово строки (или после элемента управления
оператор) не является зарезервированным словом, значит оболочка распознала простую команду.
В противном случае могла быть распознана сложная команда или какая-то другая особая конструкция.

просто Команды
Если простая команда распознана, оболочка выполняет следующие действия:

1. Начальные слова вида «имя = значение» удаляются и присваиваются
окружение простой команды. Операторы перенаправления и их аргументы (как
описанные ниже) удаляются и сохраняются для обработки.

2. Остальные слова раскрываются, как описано в разделе «Расширения»,
и первое оставшееся слово считается именем команды, а команда
расположена. Остальные слова считаются аргументами команды. Если нет
имя команды, затем присвоения переменной «имя = значение», распознанные в
пункт 1 влияет на текущую оболочку.

3. Перенаправления выполняются, как описано в следующем разделе.

Перенаправления
Перенаправления используются для изменения места, где команда читает свой ввод или отправляет свой вывод. В
вообще, перенаправления открывают, закрывают или дублируют существующую ссылку на файл. В
общий формат, используемый для перенаправления:

[П] переделка файл

в котором переделка является одним из операторов перенаправления, упомянутых ранее. Ниже приводится
список возможных перенаправлений. [N] - необязательное число, например «3» (не «[3]»),
ссылающийся на файловый дескриптор.

[n]> file Перенаправить стандартный вывод (или n) в файл.

[n]> | файл То же, но переопределить -C опцию.

[n] >> file Добавить стандартный вывод (или n) в файл.

[n] <file Перенаправить стандартный ввод (или n) из файла.

[n1] <& n2 Дублировать стандартный ввод (или n1) из файлового дескриптора n2.

[n] <& - закрыть стандартный ввод (или n).

[n1]> & n2 Дублировать стандартный вывод (или n1) до n2.

[n]> & - закрыть стандартный вывод (или n).

[n] <> file Открыть файл для чтения и записи на стандартный ввод (или n).

Следующее перенаправление часто называют «здесь-документом».

[n] << разделитель
здесь-документ-текст ...
ограничитель

Весь текст в последовательных строках до разделителя сохраняется и становится доступным для
команда на стандартный ввод или дескриптор файла n, если он указан. Если разделитель как
указанный в начальной строке цитируется, тогда текст здесь-документа обрабатывается буквально,
в противном случае текст подвергается расширению параметров, подстановке команд и арифметическим операциям.
расширение (как описано в разделе «Расширения»). Если вместо оператора используется «<< -»
«<<», то ведущие табуляции в тексте документа удаляются.

Поиск и Типы
Есть три типа команд: функции оболочки, встроенные команды и обычные программы -
и команда ищется (по имени) в этом порядке. Каждый из них выполнен в
по-другому.

Когда выполняется функция оболочки, все позиционные параметры оболочки (кроме $ 0, который
остается без изменений) устанавливаются в аргументы функции оболочки. Переменные, которые
явно помещены в среду команды (помещая присваивания им перед
имя функции) делаются локальными по отношению к функции и устанавливаются на указанные значения. Тогда
команда, указанная в определении функции, выполняется. Позиционные параметры:
восстанавливаются до исходных значений после завершения команды. Все это происходит в
текущая оболочка.

Встроенные функции оболочки выполняются внутри оболочки, не порождая новый процесс.

В противном случае, если имя команды не соответствует функции или встроенной функции, выполняется поиск команды.
for как обычная программа в файловой системе (как описано в следующем разделе). Когда
выполняется обычная программа, оболочка запускает программу, передавая аргументы и
среда к программе. Если программа не является обычным исполняемым файлом (т. Е. Если она
не начинается с "магического числа", представление ASCII которого - "#!", поэтому Execve(2)
тогда возвращает ENOEXEC) оболочка интерпретирует программу в подоболочке. Дочерняя оболочка
в этом случае выполнит повторную инициализацию, так что эффект будет таким, как если бы была создана новая оболочка.
вызывается для обработки специального сценария оболочки, за исключением того, что расположение хешированных команд
находящийся в родительской оболочке, запомнится дочерним.

Обратите внимание, что предыдущие версии этого документа и сам исходный код вводят в заблуждение и
время от времени называют сценарий оболочки без магического номера «процедурой оболочки».

Path Поиск
При нахождении команды оболочка сначала проверяет, есть ли у нее функция оболочки.
имя. Затем он ищет встроенную команду с таким именем. Если встроенная команда не найдена,
происходит одно из двух:

1. Имена команд, содержащие косую черту, просто выполняются без выполнения поиска.

2. Оболочка по очереди ищет команду в каждой записи в PATH. Значение ПУТЬ
переменная должна быть серией записей, разделенных двоеточиями. Каждая запись состоит из
имя каталога. Текущий каталог может быть указан неявно пустым
имя каталога или явно одной точкой.

Command Выход Статус:
Каждая команда имеет статус выхода, который может влиять на поведение других команд оболочки.
Парадигма состоит в том, что команда завершается с нулем для нормального или успешного завершения и ненулевым для
сбой, ошибка или ложное указание. На странице руководства для каждой команды должен быть указан
различные коды выхода и что они означают. Кроме того, встроенные команды возвращают exit
коды, как и исполняемая функция оболочки.

Если команда полностью состоит из присвоений переменных, то статус выхода команды
- это подстановка последней команды, если таковая имеется, в противном случае - 0.

Комплекс Команды
Сложные команды - это комбинации простых команд с операторами управления или зарезервированными
слова, вместе создавая большую сложную команду. В более общем смысле, команда - это одна из
следующие:

· простая команда

· трубопровод

· список или составной список

· составная команда

· определение функции

Если не указано иное, статус выхода команды - это статус последней простой команды.
выполняется командой.

Трубопроводы
Конвейер - это последовательность из одной или нескольких команд, разделенных оператором управления |. В
стандартный вывод всех команд, кроме последней, подключается к стандартному вводу следующей
команда. Стандартный вывод последней команды, как обычно, наследуется от оболочки.

Формат конвейера:

[!] команда1 [| команда2 ...]

Стандартный вывод command1 соединен со стандартным вводом command2. В
стандартный ввод, стандартный вывод или обе команды считаются назначенными
конвейер перед любым перенаправлением, указанным операторами перенаправления, которые являются частью
команда.

Если конвейер не в фоновом режиме (обсуждается позже), оболочка ожидает всех команд
, чтобы закончить.

Если зарезервированное слово! не предшествует конвейеру, статус выхода - это статус выхода
последняя команда, указанная в конвейере. В противном случае статус выхода будет логическим НЕ.
статуса выхода последней команды. То есть, если последняя команда вернет ноль, выход
статус 1; если последняя команда возвращает больше нуля, статус выхода равен нулю.

Поскольку конвейерное присвоение стандартного ввода или стандартного вывода или обоих происходит до
перенаправление, его можно изменить перенаправлением. Например:

$ command1 2> & 1 | command2

отправляет стандартный вывод и стандартную ошибку command1 на стандартный ввод
команда2.

А; или терминатор «новая строка» вызывает выполнение предыдущего списка И-ИЛИ (описанного далее)
последовательно; & вызывает асинхронное выполнение предыдущего списка И-ИЛИ.

Обратите внимание, что в отличие от некоторых других оболочек, каждый процесс в конвейере является дочерним по отношению к вызывающему
оболочка (если это не встроенная оболочка, и в этом случае она выполняется в текущей оболочке, но
любое влияние, которое он оказывает на окружающую среду, стирается).

проверка данных Команды -- &
Если команда завершается оператором управления амперсандом (&), оболочка выполняет команду
команда асинхронно - то есть оболочка не ждет, пока команда завершится, прежде чем
выполнение следующей команды.

Формат выполнения команды в фоновом режиме:

команда1 & [команда2 & ...]

Если оболочка не интерактивна, для стандартного ввода асинхронной команды устанавливается значение
/ DEV / нуль.

Списки -- В целом Говоря
Список - это последовательность из нуля или более команд, разделенных новой строкой, точкой с запятой или
амперсанды и, возможно, оканчиваются одним из этих трех символов. Команды в
list выполняются в том порядке, в котором они написаны. Если за командой следует амперсанд,
оболочка запускает команду и сразу же переходит к следующей команде; иначе это
ожидает завершения команды, прежде чем перейти к следующей.

Короткое замыкание Список Операторы
«&&» и «||» являются операторами списка И-ИЛИ. «&&» выполняет первую команду, а затем выполняет
вторая команда, если статус выхода первой команды равен нулю. «||» похоже, но
выполняет вторую команду, если статус выхода первой команды отличен от нуля. "&&" а также
«||» оба имеют одинаковый приоритет.

Управление потоком Формирует -- если, пока, для, случаев
Синтаксис команды if:

если список
затем перечислите
[список Элиф
затем список] ...
[еще список]
fi

Синтаксис команды while:

пока список
сделать список
сделанный

Два списка выполняются повторно, пока статус выхода первого списка равен нулю. В
Команда до тех пор, пока не похожа, но вместо while содержит слово до тех пор, пока
повторять до тех пор, пока статус выхода первого списка не станет нулевым.

Синтаксис команды for:

для переменной [в [слово ...]]
сделать список
сделанный

Следующие слова in раскрываются, а затем список выполняется повторно с
переменная устанавливается для каждого слова по очереди. Пропуск в слове ... эквивалентен "$ @".

Синтаксис команды break и continue:

перерыв [число]
продолжить [число]

Break завершает число самых внутренних циклов for или while. Продолжить, перейти к следующему
итерация самого внутреннего цикла. Они реализованы как встроенные команды.

Синтаксис команды case:

падежное слово в
[(] шаблон) список ;;
...
ESAC

На самом деле узор может быть одним или несколькими узорами (см. Оболочка Шаблоны описано позже),
разделенные "|" символы. Символ «(» перед шаблоном не обязателен.

группирование Команды Вместе
Команды можно сгруппировать, написав либо

(список)

or

{ список; }

Первый из них выполняет команды в подоболочке. Встроенные команды сгруппированы в
(список) не повлияет на текущую оболочку. Вторая форма не разветвляет другую оболочку, поэтому
немного эффективнее. Такое группирование команд позволяет перенаправлять их
вывод, как если бы они были одной программой:

{printf "привет"; printf "мир \ п"; }> приветствие

Обратите внимание, что «}» должно следовать за оператором управления (здесь «;»), чтобы он распознавался как
зарезервированное слово, а не как другой аргумент команды.

функции
Синтаксис определения функции:

name () команда

Определение функции - это исполняемый оператор; при выполнении он устанавливает функцию с именем
name и возвращает нулевой статус выхода. Команда обычно представляет собой список, заключенный между
"{" а также "}".

Переменные могут быть объявлены локальными для функции с помощью локальной команды. Это должно
появляется как первый оператор функции, а его синтаксис

локальная [переменная | -] ...

Local реализован как встроенная команда.

Когда переменная становится локальной, она наследует начальное значение и флаги экспорта и чтения.
из переменной с тем же именем в окружающей области, если таковая имеется. Иначе,
переменная изначально не установлена. Оболочка использует динамическую область видимости, так что если вы сделаете
переменная x локальная для функции f, которая затем вызывает функцию g, ссылаясь на переменную x
сделанный внутри g будет ссылаться на переменную x, объявленную внутри f, а не на глобальную переменную
по имени x.

Единственный специальный параметр, который можно сделать локальным, - это «-». Делаем «-» локальным для любой оболочки
параметры, которые были изменены с помощью команды set внутри функции, должны быть восстановлены до их
исходные значения при возврате функции.

Синтаксис команды возврата:

return [статус выхода]

Он завершает текущую выполняемую функцию. Возврат реализован как встроенная команда.

Переменные и параметры
Оболочка поддерживает набор параметров. Параметр, обозначенный именем, называется
Переменная. При запуске оболочка превращает все переменные среды в оболочку
переменные. Новые переменные можно установить с помощью формы

имя = значение

Переменные, устанавливаемые пользователем, должны иметь имя, состоящее исключительно из букв, цифр и
подчеркивания - первое из которых не должно быть числовым. Параметр также можно обозначить
номер или специальный символ, как описано ниже.

позиционный параметры
Позиционный параметр - это параметр, обозначаемый числом (n> 0). Оболочка устанавливает эти
изначально к значениям его аргументов командной строки, которые следуют за именем оболочки
сценарий. В набор Встроенная функция также может использоваться для их установки или сброса.

Особый параметры
Специальный параметр - это параметр, обозначаемый одним из следующих специальных символов. В
значение параметра указано рядом с его символом.

* Расширяется до позиционных параметров, начиная с единицы. Когда расширение
встречается в строке, заключенной в двойные кавычки, она расширяется до одного поля с
значение каждого параметра, разделенное первым символом переменной IFS,
или «пробелом», если IFS не установлен.

@ Расширяется до позиционных параметров, начиная с единицы. Когда расширение
заключен в двойные кавычки, каждый позиционный параметр раскрывается как отдельный
аргумент. Если нет позиционных параметров, расширение @ генерирует
ноль аргументов, даже если @ заключен в двойные кавычки. Что это в основном означает для
Например, если $ 1 - это «abc», а $ 2 - «def ghi», тогда «$ @» расширяется до двух
аргументы:

"abc" "def ghi"

# Расширяется до количества позиционных параметров.

? Расширяется до статуса выхода самого последнего конвейера.

- (Дефис.) Заменяется на текущие флаги опций (однобуквенные названия опций
объединены в строку), как указано при вызове встроенной функцией set
команда или неявно оболочкой.

$ Заменяется на идентификатор процесса вызванной оболочки. Подоболочка сохраняет то же самое
значение $ как его родителя.

! Заменяется на идентификатор процесса последней фоновой команды, выполненной из
текущая оболочка. Для конвейера идентификатор процесса - это идентификатор последней команды.
в разработке.

0 (ноль) заменяется именем оболочки или сценария оболочки.

Word расширения
В этом разделе описаны различные раскрытия слов. Не все
расширения выполняются для каждого слова, как объяснено позже.

Расширения тильды, расширения параметров, подстановки команд, арифметические расширения и
удаление кавычек, происходящее внутри одного слова, расширяется до одного поля. Это только поле
разделение или расширение имени пути, которое может создать несколько полей из одного слова. В
единственное исключение из этого правила - расширение специального параметра @ внутри двойного
котировки, как было описано выше.

Порядок раскрытия слов:

1. Расширение тильды, расширение параметров, подстановка команд, арифметическое расширение (эти
все происходит одновременно).

2. Разделение полей выполняется для полей, созданных на шаге (1), если переменная IFS не задана
значение NULL.

3. Расширение имени пути (если не установлено -f действует).

4. Удаление цитаты.

Символ $ используется, чтобы ввести расширение параметра, подстановку команды или
арифметическая оценка.

Тильда расширение (заменяя a пользователя Посмотреть главная каталог)
Слово, начинающееся с символа тильды (~) без кавычек, подвергается раскрытию тильды. Все
символы до косой черты (/) или конца слова рассматриваются как имя пользователя и
заменяется домашним каталогом пользователя. Если имя пользователя отсутствует (как в ~ / foobar)
тильда заменяется значением ГЛАВНАЯ переменная (домашний каталог текущего пользователя).

Параметр расширение
Формат расширения параметра следующий:

$ {выражение}

где выражение состоит из всех символов до совпадения «}». Любой «}», экранированный
обратная косая черта или внутри строки в кавычках и символов во встроенных арифметических расширениях,
подстановки команд и расширения переменных не рассматриваются при определении соответствия
«}».

Самая простая форма расширения параметров:

$ {параметр}

Значение параметра, если оно есть, подставляется.

Имя параметра или символ можно заключить в фигурные скобки, которые не являются обязательными, за исключением
позиционные параметры с более чем одной цифрой или когда за параметром следует символ
это можно интерпретировать как часть имени. Если расширение параметра происходит внутри
двойные кавычки:

1. Расширение имени пути не выполняется по результатам раскрытия.

2. Разделение поля не выполняется по результатам разложения, за исключением
@.

Кроме того, расширение параметра можно изменить с помощью одного из следующих форматов.

$ {параметр: -word} Использовать значения по умолчанию. Если параметр не установлен или равен нулю, раскрытие
слово заменяется; в противном случае подставляется значение параметра.

$ {parameter: = word} Назначить значения по умолчанию. Если параметр не установлен или равен нулю, раскрытие
слова назначается параметру. Во всех случаях окончательное значение
параметр подставляется. Только переменные, а не позиционные параметры
или специальные параметры, могут быть назначены таким образом.

$ {параметр:? [word]} Указывает на ошибку, если Null или Unset. Если параметр не установлен или равен нулю,
расширение слова (или сообщение, указывающее, что оно не установлено, если слово
опущено) записывается в стандартную ошибку, и оболочка завершается с
ненулевой статус выхода. В противном случае значение параметра равно
заменены. Интерактивная оболочка не требует выхода.

$ {параметр: + слово} Использовать альтернативное значение. Если параметр не установлен или равен нулю, нуль будет
замещенный; в противном случае подставляется расширение слова.

В показанных ранее расширениях параметров использование двоеточия в формате приводит к
проверить параметр, который не установлен или равен нулю; пропуск толстой кишки приводит к тесту на
параметр, который только не установлен.

$ {# параметр} Длина строки. Длина значения параметра в символах.

Следующие четыре разновидности раскрытия параметров обеспечивают обработку подстроки. В
в каждом случае обозначение сопоставления с образцом (см. Оболочка Шаблоны), а не регулярное выражение
обозначение, используется для оценки паттернов. Если параметр - * или @, результат
расширение не указано. Заключение полной строки раскрытия параметра в двойные кавычки
не приводит к цитированию следующих четырех разновидностей символов шаблона, тогда как
кавычки в фигурных скобках имеют такой эффект.

$ {параметр% word} Удалить наименьший шаблон суффикса. Слово расширяется, чтобы произвести
шаблон. Расширение параметра затем приводит к параметру с
наименьшая часть суффикса, соответствующая удаленному шаблону.

$ {параметр %% word} Удалить самый большой шаблон суффикса. Слово расширяется, чтобы произвести
шаблон. Расширение параметра затем приводит к параметру с
самая большая часть суффикса, соответствующая удаленному шаблону.

$ {параметр # word} Удалить шаблон наименьшего префикса. Слово расширяется, чтобы произвести
шаблон. Расширение параметра затем приводит к параметру с
наименьшая часть префикса, соответствующая удаленному шаблону.

$ {параметр ## word} Удалить самый большой шаблон префикса. Слово расширяется, чтобы произвести
шаблон. Расширение параметра затем приводит к параметру с
наибольшая часть префикса, соответствующая удаленному шаблону.

Command подмена
Подстановка команд позволяет подставить вывод команды вместо
само имя команды. Подстановка команд происходит, если команда заключена в следующем виде:

$ (команда)

или (версия с обратной кавычкой):

`команда`

Оболочка расширяет подстановку команд, выполняя команду в среде подоболочки.
и заменив подстановку команды стандартным выводом команды, удалив
последовательности одной или нескольких «новой строки» в конце замены. (Встроенные ⟨новости⟩
до конца вывода не удаляются; однако во время разделения поля они могут
переводится в «пробелы», в зависимости от значения IFS и действующих кавычек.)

Арифметический расширение
Арифметическое расширение предоставляет механизм для вычисления арифметического выражения и
подставляя его значение. Формат арифметического расширения следующий:

$ ((выражение))

Выражение обрабатывается так, как если бы оно было заключено в двойные кавычки, за исключением того, что двойные кавычки внутри
выражение специально не обрабатывается. Оболочка раскрывает все токены в выражении для
расширение параметров, подстановка команд и удаление кавычек.

Затем оболочка рассматривает это как арифметическое выражение и подставляет значение
выражение.

Белый Space расщепляющий (Поле Разделение)
После раскрытия параметров, подстановки команд и арифметического расширения оболочка сканирует
результаты расширений и замен, которые не были заключены в двойные кавычки для поля
может произойти разделение и несколько полей.

Оболочка обрабатывает каждый символ IFS как разделитель и использует разделители для разделения
результаты раскрытия параметров и подстановки команд в поля.

Pathname расширение (Файл Имя поколение)
Если -f установлен флаг, генерация имени файла выполняется после того, как разделение слов
полный. Каждое слово рассматривается как последовательность шаблонов, разделенных косой чертой. Процесс
расширения заменяет слово именами всех существующих файлов, имена которых могут быть
формируется заменой каждого шаблона строкой, соответствующей указанному шаблону. Там
на это есть два ограничения: во-первых, шаблон не может соответствовать строке, содержащей косую черту, и
во-вторых, шаблон не может соответствовать строке, начинающейся с точки, если только первый символ
узор - точка. В следующем разделе описаны шаблоны, используемые как для имени пути
Расширение и случаев команда.

Оболочка Шаблоны
Шаблон состоит из обычных символов, которые соответствуют себе, и метасимволов. В
метасимволы: «!», «*», «?» и «[». Эти символы теряют свое особое значение, если
они цитируются. Когда выполняется подстановка команды или переменной и знак доллара или
обратные кавычки не заключаются в двойные кавычки, значение переменной или вывод команды
проверяется на наличие этих символов, и они превращаются в метасимволы.

Звездочка («*») соответствует любой строке символов. Знак вопроса соответствует любому
персонаж. Левая скобка («[») вводит класс символов. Конец персонажа
класс обозначается («]»); если «]» отсутствует, то «[» соответствует «[», а не
Представляем класс персонажей. Класс символов соответствует любому из символов между
квадратных скобок. Диапазон символов можно указать с помощью знака минус. Персонаж
класс можно дополнить, сделав восклицательный знак первым символом
класс персонажа.

Чтобы включить «]» в класс символов, сделайте его первым в списке (после «!», Если
любой). Чтобы включить знак минус, сделайте его первым или последним символом в списке.

Встроенные
В этом разделе перечислены встроенные команды, которые являются встроенными, потому что они должны выполнять некоторые
операция, которая не может выполняться отдельным процессом. В дополнение к ним есть
несколько других команд, которые могут быть встроены для повышения эффективности (например, Printf(1) эхо(1)
тестXNUMX(1) и т. Д.).

:

true Пустая команда, возвращающая значение выхода 0 (истина).

. файл
Команды в указанном файле читаются и выполняются оболочкой.

псевдоним [имя[= строка ...]]
If имя = строка указан, оболочка определяет псевдоним имя со значением string. Если
всего имя указано значение псевдонима имя печатается. Без аргументов,
домен псевдоним builtin печатает имена и значения всех определенных псевдонимов (см. Unalias).

бг [работа] ...
Продолжить указанные задания (или текущее задание, если задания не заданы) в
фон.

команда [-p] [-v] [-V] команду [аргумент ...]
Выполнить указанную команду, но игнорировать функции оболочки при ее поиске.
(Это полезно, когда у вас есть функция оболочки с тем же именем, что и встроенная
команда.)

-p поиск команды с использованием ПУТЬ, который гарантирует нахождение всех стандартных
коммунальные услуги.

-V Не выполняйте команду, а найдите команду и распечатайте разрешение
командного поиска. Это то же самое, что и встроенный тип.

-v Не выполняйте команду, а найдите ее и распечатайте абсолютное
путь к утилитам, имя для встроенных команд или расширение псевдонимов.

cd -

CD [-ЛП] [каталог]
Перейти в указанный каталог (по умолчанию HOME). Если запись для CDPATH появляется в
окружающая среда cd установлена ​​команда или переменная оболочки CDPATH и
имя каталога не начинается с косой черты, тогда каталоги, перечисленные в CDPATH
будет выполняться поиск указанного каталога. Формат CDPATH такой же, как
что PATH. Если в качестве аргумента указано одиночное тире, оно будет заменено на
значение OLDPWD. В cd команда распечатает имя каталога, в котором она
фактически переключился на, если это имя отличается от имени, которое дал пользователь. Эти
может отличаться либо потому, что использовался механизм CDPATH, либо потому, что аргумент
это одиночное тире. В -P опция вызывает использование физической структуры каталогов,
то есть все символические ссылки разрешаются к своим соответствующим значениям. В -L вариант
отключает эффект любого предыдущего -P настройки.

эхо [-n] аргументы ...
Выведите аргументы через пробел в стандартный вывод. Если только -n
присутствует опция, после аргументов выводится новая строка.

Если во время вывода встречается какая-либо из следующих последовательностей символов,
последовательность не выводится. Вместо этого выполняется указанное действие:

\ b Выводится символ возврата.

\ c Последующий вывод подавляется. Обычно используется в конце
последний аргумент для подавления завершающего символа новой строки, который эхо иначе бы
вывод.

\ f Вывести подачу страницы.

\ n Вывести символ новой строки.

\ r Вывести возврат каретки.

\ t Вывести (горизонтальный) символ табуляции.

\ v Вывести вертикальную табуляцию.

\0цифры
Выведите символ, значение которого представлено от нуля до трех восьмеричных цифр. Если
есть нулевые цифры, выводится нулевой символ.

\\ Вывести обратную косую черту.

Все остальные последовательности обратной косой черты вызывают неопределенное поведение.

Eval string ...
Объедините все аргументы с пробелами. Затем повторите синтаксический анализ и выполните команду.

исполнитель [команду аргумент ...]
Если команда не указана, процесс оболочки заменяется указанной программой.
(которая должна быть реальной программой, а не встроенной оболочкой или функцией). Любые перенаправления на
домен Exec команды помечены как постоянные, поэтому они не отменяются, когда Exec
команда завершается.

выход [статус выхода]
Завершите процесс оболочки. Если статус выхода дается, он используется как статус выхода
ракушка; в противном случае используется статус выхода предыдущей команды.

экспорт имя ...

экспорт -p
Указанные имена экспортируются так, что они появятся в среде
последующие команды. Единственный способ отменить экспорт переменной - отключить ее. Оболочка
позволяет установить значение переменной одновременно с экспортом, написав

имя экспорта = значение

Без аргументов команда экспорта выводит имена всех экспортируемых переменных. С участием
домен -p указана опция, вывод будет отформатирован для неинтерактивного
использовать.

ФК [-e редактор] [первый [последний]]

fc -l [-номер] [первый [последний]]

fc -s [старый = новый] [первый]
Ассоциация fc встроенные списки или редактирует и повторно выполняет команды, ранее введенные в
интерактивная оболочка.

-e редактор
Используйте редактор, названный редактором, для редактирования команд. Строка редактора - это
имя команды, подлежащее поиску по переменной PATH. Ценность в
Переменная FCEDIT используется по умолчанию, когда -e не указано. Если FCEDIT
null или unset, используется значение переменной EDITOR. Если EDITOR равен нулю или
отключено, ed(1) используется как редактор.

-l (элл)
Перечислите команды, а не запускайте для них редактор. Команды
записываются в последовательности, указанной первым и последним операндами, как затронутые
by -r, где каждой команде предшествует номер команды.

-n Подавлять номера команд при перечислении с -l.

-r Измените порядок перечисленных команд (с -l) или отредактировал (ни -l
ни -s).

-s Повторите команду, не вызывая редактор.

первый

последний Выберите команды для списка или редактирования. Количество предыдущих команд, которые могут
доступ определяется значением переменной HISTSIZE. Значение
первого или последнего или обоих являются одним из следующих:

[+] номер
Положительное число, представляющее номер команды; номера команд могут быть
отображается с -l опцию.

-число
Отрицательное десятичное число, представляющее выполненную команду.
количество команд ранее. Например, -1 - это сразу
предыдущая команда.

string
Строка, указывающая на последнюю введенную команду, которая начинается с этого
нить. Если старый = новый операнд также не указан с -s, строковая форма
первого операнда не может содержать встроенный знак равенства.

Следующие переменные среды влияют на выполнение fc:

FCEDIT Имя используемого редактора.

HISTSIZE Количество доступных ранее команд.

фг [работа]
Переместить указанное задание или текущее задание на передний план.

Getopts строка опций вар
POSIX Getopts команду, не путать с Колокол Labs -производный Getopt(1).

Первым аргументом должна быть серия букв, каждая из которых может быть необязательно
за которым следует двоеточие, чтобы указать, что опция требует аргумента. Переменная
указано значение анализируемой опции.

Ассоциация Getopts команда осуждает старые Getopt(1) полезность из-за обработки
аргументы, содержащие пробелы.

Ассоциация Getopts встроенный может использоваться для получения параметров и их аргументов из списка
параметры. При вызове Getopts помещает значение следующего параметра из
строка параметра в списке в переменной оболочки, заданной вар и его индекс в
переменная оболочки OPTIND. При вызове оболочки OPTIND инициализируется значением 1. Для
каждая опция, требующая аргумента, Getopts builtin поместит его в оболочку
переменная OPTARG. Если опция не разрешена в строка опций, то OPTARG будет
быть сбитым с толку.

строка опций строка распознанных букв опции (см. Getopt(3)). Если письмо
за которым следует двоеточие, параметр должен иметь аргумент, который может или не может
быть отделенным от него пробелом. Если символ опции не найден где
ожидается, Getopts установит переменную вар на «?»; Getopts затем отключит OPTARG
и записать вывод в стандартную ошибку. Указав двоеточие в качестве первого символа
строка опций все ошибки будут проигнорированы.

При достижении последней опции возвращается ненулевое значение. Если нет
оставшиеся аргументы, Getopts установит вар к специальному параметру «-», в противном случае
установит вар к "?".

В следующем фрагменте кода показано, как можно обработать аргументы команды.
который может принимать варианты [a] и [b], а также вариант [c], который требует
аргумент.

а getopts abc: f
do
case $ f в
а | б) flag = $ f ;;
в) carg = $ OPTARG ;;
\?) echo $ USAGE; выход 1 ;;
ESAC
сделанный
shift `expr $ OPTIND - 1`

Этот код примет любое из следующего как эквивалент:

cmd -acarg файл файл
cmd -a -c arg файл файл
cmd -carg -a файл файл
cmd -a -carg - файл файл

хэш -рв команду ...
Оболочка поддерживает хеш-таблицу, которая запоминает расположение команд. Без
как бы то ни было, хэш команда распечатывает содержимое этой таблицы.
Записи, которые не просматривались с последнего cd команды отмечены
звездочка; эти записи могут быть недействительными.

С аргументами хэш команда удаляет указанные команды из хеш-таблицы
(если они не являются функциями), а затем находит их. С -v опция, хеш-отпечатки
расположение команд по мере их нахождения. В -r опция вызывает хеш
команда для удаления всех записей в хеш-таблице, кроме функций.

пвд [-ЛП]
встроенная команда запоминает текущий каталог, а не пересчитывает его
каждый раз. Это делает его быстрее. Однако, если текущий каталог переименован,
встроенная версия PWD продолжит печатать старое имя каталога. В -P
опция вызывает отображение физического значения текущего рабочего каталога, что
То есть, все символические ссылки разрешаются к своим соответствующим значениям. В -L вариант поворачивается
от эффекта любого предшествующего -P настройки.

читать [-p подсказка] [-r] переменная [...]
Подсказка печатается, если -p указан параметр, а стандартный ввод - это
Терминал. Затем из стандартного ввода считывается строка. Завершающий символ новой строки
удаляется из строки, и строка разделяется, как описано в разделе, посвященном слову
разделение выше, и части присваиваются переменным по порядку. Хотя бы один
переменная должна быть указана. Если штук больше, чем переменных, оставшиеся
части (вместе с символами в IFS, которые их разделяли) назначаются
последняя переменная. Если переменных больше, чем штук, оставшиеся переменные
присвоена пустая строка. В читать встроенный будет указывать на успех, если EOF не
обнаружено на входе, и в этом случае возвращается ошибка.

По умолчанию, если -r указана опция, обратная косая черта «\» действует как escape
символ, в результате чего следующий символ трактуется буквально. Если обратная косая черта
следует символ новой строки, обратная косая черта и новая строка будут удалены.

только для чтения имя ...

только для чтения -p
Указанные имена помечаются как только для чтения, поэтому впоследствии их нельзя
изменено или отключено. Оболочка позволяет установить одинаковое значение переменной.
раз он помечен только для чтения записью

только для чтения имя = значение

Без аргументов команда readonly выводит имена всех переменных, доступных только для чтения.
Для -p указана опция, вывод будет отформатирован соответствующим образом для не-
интерактивное использование.

Printf формат [Аргументы ...]
Printf форматирует и печатает свои аргументы после первого под управлением
формат, формат представляет собой символьную строку, содержащую три типа объектов:
простые символы, которые просто копируются в стандартный вывод, escape-символы
последовательности, которые преобразуются и копируются в стандартный вывод, и форматируются
спецификации, каждая из которых вызывает печать следующего подряд аргумент.

Ассоциация Аргументы после первых обрабатываются как строки, если соответствующий формат
или b, c or s; в противном случае он оценивается как константа C со следующими
расширения:

· Допускается ведущий знак плюс или минус.
· Если ведущий символ - одинарная или двойная кавычка, значением будет
Код ASCII следующего символа.

Строка формата повторно используется столько раз, сколько необходимо, чтобы удовлетворить Аргументы, Любые
дополнительные спецификации формата оцениваются нулем или пустой строкой.

Управляющие последовательности символов представлены в нотации обратной косой черты, как определено в ANSI X3.159-1989.
(«ANSI C89»). Персонажи и их значения следующие:

\a Напиши персонаж.

\b Напиши персонаж.

\f Напиши персонаж.

\n Напиши персонаж.

\r Напиши персонаж.

\t Напиши персонаж.

\v Напиши персонаж.

\\ Напишите символ обратной косой черты.

\Num Напишите 8-битный символ, значение ASCII которого является одно-, двух- или трехзначным.
восьмеричное число Num.

Каждая спецификация формата начинается с символа процента (``% ''). В
Остальная часть спецификации формата включает в следующем порядке:

Ноль или более из следующих флагов:

# Символ `# ', указывающий, что значение должно быть напечатано в
`` альтернативная форма ''. Для b, c, dи s форматы, в этой опции нет
эффект. Для o format точность числа увеличена до
установить нулевое значение для первого символа выходной строки. Для x
(X) формат, ненулевой результат имеет перед ним строку 0x (0X).
Что касается e, E, f, gи G форматы, результат всегда будет содержать
десятичная точка, даже если за точкой нет цифр (обычно
десятичная точка появляется в результатах этих форматов, только если цифра
следует за десятичной точкой). Для g и G форматы, нули в конце
не удаляются из результата, как в противном случае.

- Знак минус "-", обозначающий оставил регулировка выхода в
указанное поле;

+ Знак `+ ', указывающий, что всегда должен быть помещен знак
перед числом при использовании форматов со знаком.

'' Пробел, указывающий, что перед положительным
число для подписанного формата. `+ 'Заменяет пробел, если оба
использовал;

0 Нулевой символ `0 ', указывающий на то, что следует использовать заполнение нулями.
а не пустое заполнение. «-» заменяет «0», если используются оба;

Ширина поля:
Необязательная строка цифр, определяющая поле ширина; если в выходной строке есть
меньше символов, чем ширина поля, оно будет заполнено пробелами слева (или
вправо, если задан индикатор регулировки влево), чтобы составить поле
ширины (обратите внимание, что ведущий ноль - это флаг, но встроенный ноль является частью
ширина поля);

Точность:
Необязательный период, '.', за которым следует необязательная строка цифр, дающая
точность который определяет количество цифр после десятичной дроби.
точка, для e и f форматы или максимальное количество байтов для печати из
строка (b и s форматы); если строка цифр отсутствует, точность равна
рассматривается как ноль;

Формат:
Символ, указывающий тип используемого формата (один из
diouxxfwEgGbcs).

Ширина поля или точность могут быть равны '*'вместо строки цифр. В этом случае
аргумент предоставляет ширину поля или точность.

Символы формата и их значения:

diouXx Ассоциация аргумент печатается как десятичное со знаком (d или i), восьмеричное без знака,
беззнаковое десятичное или беззнаковое шестнадцатеричное (X или x) соответственно.

f Ассоциация аргумент печатается в стиле [-] ddd.ddd где количество d
после десятичной точки соответствует спецификации точности для
аргумент. Если точность отсутствует, дается 6 цифр; если
точность явно равна 0, цифры и десятичная точка не печатаются.

eE Ассоциация аргумент печатается в стиле [-] d.дддe± dd, где есть один
цифра перед десятичной запятой, а число после равно
спецификация точности аргумента; когда точность отсутствует,
Выпускается 6 цифр. E в верхнем регистре используется для формата `E '.

gG Ассоциация аргумент напечатан в стиле f или в стиле e (E) в зависимости от того, что дает полный
точность в минимальном пространстве.

b Символы из строки аргумент печатаются с обратной косой чертой
последовательности расширены.
Поддерживаются следующие дополнительные escape-последовательности с обратной косой чертой:

\c Причины тире игнорировать любые оставшиеся символы в строке
содержащий его операнд, любые оставшиеся строковые операнды и любые
дополнительные символы в операнде формата.

\0Num Запишите 8-битный символ, значение ASCII которого равно 1, 2 или
3-значное восьмеричное число Num.

c Первый персонаж аргумент печатается.

s Символы из строки аргумент печатаются до конца
или до тех пор, пока количество байтов, указанное в спецификации точности, не станет
достиг; если точность опущена, все символы в строке
распечатаны.

% Выведите "%"; аргумент не используется.

Ни в коем случае несуществующее или малая ширина поля не приводит к усечению поля;
заполнение выполняется только в том случае, если указанная ширина поля превышает фактическую ширину.

установленный [{ -параметры | + варианты | -- }] аргумент ...
Ассоциация набор Команда выполняет три разные функции.

Без аргументов он перечисляет значения всех переменных оболочки.

Если указаны параметры, он устанавливает указанные флаги параметров или очищает их, как описано
в разделе под названием Аргумент Список Обработка. В особом случае, если опция
-o или + o и аргумент не указан, оболочка распечатывает настройки всех своих
параметры. Если задана опция -o, настройки печатаются в удобочитаемом формате;
если опция - + o, настройки распечатываются в формате, подходящем для повторного ввода в
оболочка, чтобы повлиять на настройки тех же параметров.

Третье использование команды set - установить значения позиционного
параметры к указанным аргументам. Для изменения позиционных параметров без
изменяя любые параметры, используйте «-» в качестве первого аргумента для установки. Если аргументов нет,
команда set очистит все позиционные параметры (эквивалентно выполнению
«Shift $ #».)

сдвиг [n]
Сдвинуть позиционные параметры n раз. А сдвиг устанавливает значение $1 к значению
of $2, значение $2 к стоимости $3и т. д., уменьшая значение $# by
один. Если n больше, чем количество позиционных параметров, сдвиг выпустит
сообщение об ошибке и выйти со статусом возврата 2.

тестXNUMX выражение

[ выражение ]
Ассоциация тестXNUMX Утилита оценивает выражение и, если оно истинно, возвращает
нулевой (истинный) статус выхода; в противном случае возвращается 1 (ложь). Если нет выражения,
test также возвращает 1 (ложь).

Все операторы и флаги являются отдельными аргументами для тестXNUMX утилита.

Следующие основные параметры используются для построения выражения:

-b файл Верно, если файл существует и представляет собой специальный блочный файл.

-c файл Верно, если файл существует и является специальным символьным файлом.

-d файл Верно, если файл существует и является каталогом.

-e файл Верно, если файл существует (независимо от типа).

-f файл Верно, если файл существует и является обычным файлом.

-g файл Верно, если файл существует и установлен флаг идентификатора группы.

-h файл Верно, если файл существует и является символической ссылкой.

-k файл Верно, если файл существует и его липкий бит установлен.

-n string Верно, если длина string ненулевой

-p файл Верно, если файл это именованный канал (FIFO).

-r файл Верно, если файл существует и доступен для чтения.

-s файл Верно, если файл существует и имеет размер больше нуля.

-t файловый_дескриптор
Истинно, если файл с номером дескриптора файла файловый_дескриптор is
open и связан с терминалом.

-u файл Верно, если файл существует и установлен флаг установленного идентификатора пользователя.

-w файл Верно, если файл существует и доступен для записи. Истина указывает только на то, что
флаг записи включен. Файл не доступен для записи в файловой системе только для чтения
даже если этот тест показывает истину.

-x файл Верно, если файл существует и является исполняемым. Истина указывает только на то, что
установлен флаг выполнения. Если файл это каталог, истина означает, что файл
можно искать.

-z string Верно, если длина string это ноль.

-L файл Верно, если файл существует и является символической ссылкой. Этот оператор сохраняется
для совместимости с предыдущими версиями этой программы. Не полагайтесь
о его существовании; использовать -h .

-O файл Верно, если файл существует, и его владелец соответствует эффективному идентификатору пользователя этого
процесс.

-G файл Верно, если файл существует, и его группа соответствует эффективному идентификатору группы
этот процесс.

-S файл Верно, если файл существует и является сокетом.

file1 -нт file2
Верно, если file1 и file2 существуют и file1 новее чем file2.

file1 -от file2
Верно, если file1 и file2 существуют и file1 старше чем file2.

file1 -эф file2
Верно, если file1 и file2 существуют и относятся к одному и тому же файлу.

string Верно, если string не является пустой строкой.

s1 = s2 Верно, если струны s1 и s2 идентичны

s1 != s2 Верно, если струны s1 и s2 не идентичны.

s1 < s2 Истинно, если строка s1 приходит раньше s2 на основе значения ASCII их
символы.

s1 > s2 Истинно, если строка s1 идет после s2 на основе значения ASCII их
символы.

n1 -экв n2 Истинно, если целые числа n1 и n2 алгебраически равны.

n1 Ne- n2 Истинно, если целые числа n1 и n2 алгебраически не равны.

n1 -GT n2 Истинно, если целое число n1 алгебраически больше целого n2.

n1 -гэ n2 Истинно, если целое число n1 алгебраически больше или равно
целое n2.

n1 -lt n2 Истинно, если целое число n1 алгебраически меньше целого n2.

n1 -Le n2 Истинно, если целое число n1 алгебраически меньше или равно
целое n2.

Эти основные цвета можно комбинировать со следующими операторами:

! выражение Верно, если выражение ложно

выражение1 -a выражение2
Верно, если оба выражение1 и выражение2 это правда.

выражение1 -o выражение2
Верно, если выражение1 or выражение2 это правда.

(выражение) Истинно, если выражение истинно.

Ассоциация -a оператор имеет более высокий приоритет, чем -o оператор.

раз Вывести общее пользовательское и системное время для оболочки и для процессов, запускаемых из
оболочка. Статус возврата - 0.

ловушка [действие сигнал ...]
Заставить оболочку анализировать и выполнять действие, когда любой из указанных сигналов
полученный. Сигналы указываются номером сигнала или названием сигнала.
If сигнал равно 0 или EXIT, действие выполняется при выходе из оболочки. действие может быть
empty (''), что приводит к игнорированию указанных сигналов. С участием действие опущено или
установлено значение «-» для указанных сигналов устанавливается действие по умолчанию. Когда оболочка
разделяет подоболочку, она сбрасывает захваченные (но не игнорируемые) сигналы по умолчанию
действие. В ловушка команда не влияет на сигналы, которые были проигнорированы при входе в
ракушка. ловушка без аргументов заставить его написать список сигналов и их
связанное действие со стандартным выводом в формате, который подходит в качестве ввода для
оболочка, которая обеспечивает такие же результаты захвата.

Примеры:

ловушка

Список перехваченных сигналов и соответствующих им действий

trap '' INT ВЫЙТИ tstp 30

Игнорировать сигналы INT QUIT TSTP USR1

дата ловушки INT

Распечатать дату при получении сигнала INT

тип [имя ...]
Интерпретируйте каждое имя как команду и распечатайте разрешение поиска команд.
Возможные решения: ключевое слово оболочки, псевдоним, встроенная оболочка, команда, отслеживаемый псевдоним.
и не нашел. Для псевдонимов печатается расширение псевдонима; для команд и отслеживаемых
aliases печатается полный путь к команде.

улимит [-H | -S] [-a | -tfdscmlpn [ценностное ]]
Запросите или установите жесткие или мягкие ограничения на процессы или установите новые ограничения. В
выбор между жестким пределом (который не может нарушаться ни одним процессом, и который не может
быть повышенным после его понижения) и мягкого ограничения (что приводит к тому, что процессы
сигнализируется, но не обязательно уничтожается, и который может быть поднят) выполняется с помощью этих
флаги:

-H установить или узнать о жестких пределах

-S установить или узнать о мягких пределах. Если ни то, ни другое -H ни -S указано,
отображается мягкий предел или установлены оба ограничения. Если указаны оба,
побеждает последний.

Предел, который нужно запросить или установить, затем выбирается путем указания любого из этих
флаги:

-a показать все текущие ограничения

-t показать или установить лимит процессорного времени (в секундах)

-f показать или установить ограничение на самый большой файл, который может быть создан (в
512-байтовые блоки)

-d показать или установить ограничение на размер сегмента данных процесса (в
килобайты)

-s показать или установить ограничение на размер стека процесса (в килобайтах)

-c показать или установить ограничение на самый большой размер дампа ядра, который может быть создан
(в блоках по 512 байт)

-m показать или установить ограничение на общую физическую память, которая может использоваться
процесс (в килобайтах)

-l показать или установить ограничение на объем памяти, который процесс может заблокировать с помощью млок(2)
(в килобайтах)

-p показать или установить ограничение на количество процессов, которые этот пользователь может иметь в
один раз

-n показать или установить ограничение на количество файлов, которые процесс может открыть одновременно

-r показать или установить ограничение на приоритет планирования в реальном времени процесса

Если ничего из этого не указано, отображается или устанавливается ограничение на размер файла. Если
указано значение, устанавливается лимит на это число; в противном случае текущий предел
отображается.

Пределы произвольного процесса могут быть отображены или установлены с помощью Sysctl(8) полезность.

умаскировать [маска]
Установите значение umask (см. Umask(2)) до указанного восьмеричного числа. Если аргумент
опускается, печатается значение umask.

неназванный [-a] [имя]
If имя указано, оболочка удаляет этот псевдоним. Если -a указан, все псевдонимы
удалены.

отключено [-фв] имя ...
Указанные переменные и функции не установлены и не экспортируются. Если -f or -v is
указано, соответствующая функция или переменная соответственно не установлена. Если данный
имя соответствует как переменной, так и функции, и не указаны параметры, только
переменная не установлена.

ждать [работа]
Дождитесь завершения указанного задания и верните статус выхода последнего процесса.
в работе. Если аргумент опущен, дождитесь завершения всех заданий и верните
нулевой статус выхода.

Command линия Редактирование
После появления тире используется интерактивно из терминала, текущая команда и команда
история (см. fc in Встроенные) можно редактировать с помощью редактирования командной строки vi-mode. Этот режим
использует команды, описанные ниже, аналогичные подмножеству команд, описанных на странице руководства vi.
Команда set -o vi разрешает редактирование в режиме vi и помещает sh в режим вставки vi. С vi-
режим включен, sh можно переключать между режимом вставки и командным режимом. Редактор не
полностью описано здесь, но будет в более позднем документе. Это похоже на vi: ввод ESC⟩
переведет вас в командный режим VI. Нажатие кнопки «возврат» в командном режиме приведет к
передать строку в оболочку.

ВЫХОД статус


Ошибки, обнаруженные оболочкой, такие как синтаксическая ошибка, приведут к завершению работы оболочки.
с ненулевым статусом выхода. Если оболочка не является интерактивной оболочкой, выполнение
файл оболочки будет прерван. В противном случае оболочка вернет статус выхода последнего
выполняется команда, или, если встроенная команда exit используется с числовым аргументом, она вернет
аргумент.

ОКРУЖАЮЩАЯ СРЕДА


ГЛАВНАЯ Устанавливается автоматически Войти(1) из каталога входа пользователя в пароль
файл (ПАРОЛЬ(4)). Эта переменная среды также работает по умолчанию
аргумент для встроенного компакт-диска.

ПУТЬ Путь поиска исполняемых файлов по умолчанию. См. Раздел выше Path Поиск.

CDPATH Путь поиска, используемый встроенной функцией cd.

ПОЧТА Имя почтового файла, который будет проверяться на получение новой почты.
Переопределено MAILPATH.

MAILCHECK Частота в секундах, с которой оболочка проверяет прибытие почты в
файлы, указанные в MAILPATH или MAIL файле. Если установлено значение 0, проверка будет
появляются при каждом запросе.

MAILPATH Список имен файлов, разделенных двоеточием «:», чтобы оболочка проверяла входящие сообщения.
Почта. Этот параметр среды имеет приоритет над настройкой ПОЧТА. Есть максимум
10 почтовых ящиков, которые можно контролировать одновременно.

PS1 Основная строка приглашения, которая по умолчанию равна «$», если вы не являетесь суперпользователем,
в этом случае по умолчанию используется «#».

PS2 Вторичная строка приглашения, значение по умолчанию - «>».

PS4 Выводить перед каждой строкой, когда включена трассировка выполнения (set -x), по умолчанию
«+».

Разделители входных полей IFS. Обычно это «пробел», «таб» и «новая строка».
Смотрите пост в Белый Space расщепляющий раздел для более подробной информации.

TERM Настройка терминала по умолчанию для оболочки. Это наследуется детьми
shell, и используется в режимах редактирования истории.

HISTSIZE Число строк в буфере истории оболочки.

PWD Логическое значение текущего рабочего каталога. Это установлено cd
команда.

OLDPWD Предыдущее логическое значение текущего рабочего каталога. Это установлено
cd команда.

PPID Идентификатор родительского процесса оболочки.

Используйте ash онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad