Это шикарная команда, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
posh - Обычная оболочка, соответствующая политике
СИНТАКСИС
шикарный [+ -aCefilnuvx] [+ -o вариант]
[[-с командная строка [имя-команды] | -с | файл ] [аргумент...]]
ОПИСАНИЕ
шикарный является повторной реализацией оболочки Bourne, интерпретатора команд для интерактивных
и использование скрипта.
Оболочка Стартап
Следующие параметры можно указать только в командной строке:
-c командная строка
оболочка выполняет команды, содержащиеся в командная строка
-i
интерактивный режим - см. ниже
-l
оболочка входа - см. ниже интерактивный режим - см. ниже
-s
оболочка считывает команды со стандартного ввода; все аргументы, не являющиеся опциями, являются позиционными
параметры
В дополнение к вышесказанному, параметры, описанные в набор встроенная команда также может быть
используется в командной строке.
Если ни -c ни -s указаны параметры, первый аргумент, не являющийся параметром
указывает имя файла, из которого оболочка считывает команды; если нет вариантов
аргументы, оболочка считывает команды из стандартного ввода. Название оболочки (т.е.,
содержание $0) определяется следующим образом: если -c вариант используется и там
- аргумент, не являющийся опцией, он используется как имя; если команды читаются из файла,
файл используется как имя; в противном случае имя, с которым была вызвана оболочка (т.е., argv [0])
используется.
Оболочка интерактивный если -i опция используется или если и стандартный ввод, и стандартный
ошибки привязаны к tty. В интерактивной оболочке включено управление заданиями (если доступно),
игнорирует сигналы INT, QUIT и TERM и выводит подсказки перед чтением ввода (см. PS1
и PS2 параметры).
Оболочка привилегированный если -p используется опция, или если реальный идентификатор пользователя или идентификатор группы не
сопоставить эффективный идентификатор пользователя или идентификатор группы (см. Getuid(2) Getgid(2)). Привилегированная оболочка
не обрабатывает $ HOME / .profile. Вместо этого обрабатывается файл / etc / suid_profile. Клиринг
привилегированный параметр заставляет оболочку установить свой эффективный идентификатор пользователя (идентификатор группы) на его реальный
идентификатор пользователя (идентификатор группы).
Если базовое имя имени, оболочка вызывается с (т.е., argv [0]) начинается с - или если
-l используется опция, предполагается, что оболочка является оболочкой входа в систему, и оболочка считывает и
выполняет содержимое / И т.д. / профиль и $ HOME / .profile, если они существуют и доступны для чтения.
Статус выхода оболочки - 127, если командный файл, указанный в командной строке
не может быть открыт или ненулевое значение, если во время выполнения произошла фатальная синтаксическая ошибка
скрипт. При отсутствии фатальных ошибок статус выхода - это статус последней команды.
выполняется или ноль, если команда не выполняется.
Command Синтаксис
Оболочка начинает синтаксический анализ вводимых данных с разбиения их на слова. Слова, которые представляют собой последовательности
символов, разделены символами пробела без кавычек (пробел, табуляция и новая строка)
или метасимволы (<,>, |,;, &, (и)). Помимо разделителей слов, пробелов и табуляции
игнорируются, а символы новой строки обычно разделяют команды. Мета-символы используются в
создание следующих токенов: <, <&, <<,>,> &, >> и т. д. используются для указания перенаправления
(см. «Перенаправление ввода / вывода» ниже); | используется для создания конвейеров; ; используется для разделения
команды; & используется для создания асинхронных конвейеров; && и || используются для указания
условное исполнение; ;; используется в операторах case; и, наконец, (...) используются для
создавать подоболочки.
Пробелы и метасимволы можно цитировать по отдельности с помощью обратной косой черты (\) или в
группы, использующие двойные (") или одиночный (') цитаты. Обратите внимание, что следующие символы также
обрабатываются оболочкой специально и должны быть указаны в кавычках, если они представляют себя: \,
", ', #, $, `, ~, {, }, *, ? и [. Первые три из них - вышеупомянутые
цитирование символов (см. Цитирование ниже); #, если используется в начале слова, вводит
комментарий - все после # до ближайшей новой строки игнорируется; $ используется, чтобы
ввести параметры, команды и арифметические замены (см. Подстановка ниже); `
вводит подстановку команд в старом стиле (см. «Подстановка» ниже); ~ начинается
расширение каталога (см. раздел «Расширение тильды» ниже); { и } определять границы CSH(1) чередование стилей
(см. Расширение скобок ниже); и наконец, *, ? и [ используются при генерации имени файла
(см. Шаблоны имен файлов ниже).
По мере анализа слов и токенов оболочка создает команды, из которых есть два основных
типы: простые команды, как правило, программы, которые выполняются, и составные команды, такой
as для и if операторы, группирующие конструкции и определения функций.
Простая команда состоит из некоторой комбинации назначений параметров (см. Параметры
ниже), перенаправления ввода / вывода (см. перенаправления ввода / вывода ниже) и команды
слова; единственное ограничение состоит в том, что параметры присваиваются перед какими-либо командными словами.
Командные слова, если они есть, определяют команду, которая должна быть выполнена, и ее аргументы.
Команда может быть встроенной командой оболочки, функцией или и, что лучший способ команду, т.е., чтобы
отдельный исполняемый файл, расположенный с помощью PATH параметр (см. Выполнение команды
ниже). Обратите внимание, что все командные конструкции имеют выход статус: для внешних команд это
связан со статусом, возвращаемым ждать(2) (если команду найти не удалось, выход
статус 127, если он не может быть выполнен, статус выхода 126); статус выхода
другие командные конструкции (встроенные команды, функции, составные команды, конвейеры,
списки, и так далее) все хорошо определены и описаны там, где описывается конструкция. В
статус выхода команды, состоящей только из назначений параметров, - это статус выхода последней
подстановка команд, выполняемая во время присвоения параметров, или обнуление, если не было
подстановки команд.
Команды можно объединить в цепочку с помощью | токен для формирования трубопроводов, В которой
стандартный вывод каждой команды, кроме последней, передается по конвейеру (см. труба(2)) на стандартный ввод
следующей команды. Статус выхода конвейера - это статус его последней команды. А
конвейер может иметь префикс ! зарезервированное слово, которое вызывает статус выхода
конвейер, который должен быть логически дополнен: если исходный статус был 0, то добавленный
статус будет 1, и если исходный статус не был 0, то дополненный статус будет
быть 0.
Списки команд можно создать, разделив конвейеры с помощью любого из следующих токенов:
&&, ||, &, |& и ;. Первые два предназначены для условного исполнения: cmd1 && cmd2 исполняет
cmd2 только если статус выхода cmd1 равно нулю; || наоборот - cmd2 выполняется только
если статус выхода cmd1 ненулевой && и || имеют равный приоритет, который выше
чем у &, |& и ;, которые также имеют равный приоритет. В & токен вызывает
предыдущая команда должна выполняться асинхронно, то есть оболочка запускает команду,
но не дожидается его завершения (оболочка отслеживает состояние
асинхронные команды - см. Управление заданиями ниже). Когда запускается асинхронная команда
когда управление заданиями отключено (т.е., в большинстве скриптов) команда запускается с сигналами
INT и QUIT игнорируются, а ввод перенаправляется из / dev / null (однако перенаправления
указанные в асинхронной команде имеют приоритет). Обратите внимание, что команда должна следовать
&& и || операторы, в то время как команда не должна следовать &, |& и ;. Статус выхода
list - это список последней выполненной команды, за исключением асинхронных списков, для
статус выхода - 0.
Составные команды создаются с использованием следующих зарезервированных слов - эти слова только
распознается, если они не заключены в кавычки и используются в качестве первого слова команды (т.е.,
им не может предшествовать назначение параметров или перенаправление):
случаев еще
сделать esac, если время [[
готово до {
elif для выбора пока}
Примечание: Некоторые оболочки (но не эта) выполняют команды управляющей структуры в подоболочке, когда
один или несколько их файловых дескрипторов перенаправляются, поэтому любая среда изменяется внутри
они могут потерпеть неудачу. Чтобы быть портативным, Exec вместо этого следует использовать оператор для перенаправления файла
дескрипторы перед структурой управления.
В следующих описаниях составных команд списки команд (обозначенные как список) которые
за которыми следуют зарезервированные слова, должны заканчиваться точкой с запятой, новой строкой или (синтаксически
правильное) зарезервированное слово. Например,
{ эхо фу; эхо бар; }
{ эхо фу; эхо бар }
{ { эхо фу; эхо бар; } } все действительны, но
{ эхо фу; эхо бар } не является.
( список )
Выполнить список в подоболочке. Не существует неявного способа передать изменения среды из
подоболочка обратно к своему родителю.
{ список }
Составная конструкция; список выполняется, но не в подоболочке. Обратите внимание, что { и }
зарезервированные слова, а не метасимволы.
случаев слово in [[(] описания [| описания] ... ) список ;; ] ... ESAC
Команда случаев заявление пытается сопоставить слово против указанного описанияS; список
ассоциированный с первым успешно подобранным шаблоном, выполняется. Шаблоны, используемые в
случаев операторы такие же, как и те, которые используются для шаблонов имен файлов, за исключением того, что
ограничения относительно . и / сброшены. Обратите внимание, что любой пробел без кавычек перед и
после снятия выкройки; любое пространство с рисунком должно быть заключено в кавычки. Оба слова
и шаблоны могут быть заменены параметрами, командами и арифметическими операциями, как
а так же подстановка тильды. По историческим причинам могут использоваться открывающие и закрывающие фигурные скобки.
вместо in и ESAC (или, случаев $ Foo { *) эхо бар; }). Статус выхода случаев
заявление - это то из выполненного список; если нет список выполняется, статус выхода
нулю.
для имя [ in слово ... срок ] do список сделанный
в котором срок это либо новая строка, либо ;, Для каждого слово в указанном списке слов
параметр имя установлен на слово и список выполняется. Если in не используется для указания
список слов, позиционные параметры ("1 $", "2 $", и так далее) вместо этого используются. Для
исторические причины, открывающие и закрывающие фигурные скобки могут использоваться вместо do и сделанный (или,
для i; { эхо $ i; }). Статус выхода для оператор - это последний статус выхода
список; если список никогда не выполняется, статус выхода равен нулю.
if список тогда список [Элиф список тогда список] ... [еще список] fi
Если статус выхода первого список равен нулю, второй список выполняется; иначе
список после Элиф, если таковые имеются, оформляется с аналогичными последствиями. Если все
списки, следующие за if и Элифс ошибкой (т.е., выход с ненулевым статусом) список
после еще выполняется. Статус выхода if заявление является тем из
безусловный список что выполняется; если нет безусловного список выполняется,
статус выхода равен нулю.
до список do список сделанный
Это работает как в то время как, за исключением того, что тело выполняется только тогда, когда статус выхода
первый список ненулевой
в то время как список do список сделанный
A в то время как это предварительно проверенный цикл. Его тело выполняется так же часто, как и статус выхода из
первый список равно нулю. Статус выхода в то время как оператор - это последний статус выхода
список в теле петли; если тело не выполнено, статус выхода
нулю.
имя () команду
Определяет функцию имя. См. Функции ниже. Обратите внимание, что перенаправления, указанные после
определение функции выполняется всякий раз, когда функция выполняется, а не когда
определение функции выполнено.
время [ -p ] [ трубопровод ]
Команда время Зарезервированное слово описано в разделе «Выполнение команд».
квотирование
Цитаты используются, чтобы оболочка не обрабатывала символы или слова специально. Там
есть три метода цитирования: Во-первых, \ цитирует следующий символ, если он не находится в
конец строки, и в этом случае оба \ и новая строка удаляется. Во-вторых, сингл
Цитировать (') цитирует все, вплоть до следующей одинарной кавычки (это может занимать строки). В-третьих,
двойная кавычка (") цитирует все символы, кроме $, ` и \, до следующего дубля без кавычек
цитаты. $ и ` внутри двойных кавычек имеют свое обычное значение (т.е., параметр, команда или
арифметическая подстановка) за исключением того, что по результатам
подстановки в двойных кавычках. Если \ внутри строки в двойных кавычках следует \, $, `
or ", он заменяется вторым символом; если за ним следует новая строка, оба символа \
и новая строка удаляется; в противном случае оба \ и следующий за ним персонаж
без изменений.
Примечание: см. Режим POSIX ниже, чтобы узнать о специальном правиле, касающемся последовательностей формы.
"...`...\"...`..".
подмена
Первым шагом оболочки при выполнении простой команды является выполнение подстановок
по словам команды. Есть три вида подстановки: параметр, команда и
арифметика. Подстановки параметров, которые подробно описаны в следующем разделе,
принять форму $ имя or ${...}; подстановки команд принимают форму $(команду) or
`команду`; а арифметические замены принимают вид $ ((выражение)).
Если замена появляется вне двойных кавычек, результаты замены
обычно подлежат разделению на слова или поля в соответствии с текущим значением IFS
параметр. В IFS параметр определяет список символов, которые используются для разрыва
составить несколько слов; любые символы из заданного пробела, табуляции и новой строки, которые
появляются в IFS символы называются IFS белый космосе. Последовательности одного или нескольких IFS
символы пробела в сочетании с нулем или одним символом пробела, отличным от IFS
разграничить поле. В особом случае начальные и конечные пробелы IFS удаляются.
(т.е., он не создает никаких начальных или конечных пустых полей); ведущие или конечные не-IFS
пустое пространство создает пустое поле. Пример: если IFS установлен на ` :', последовательность
персонажей ` А : B :: D 'содержит четыре поля: `A',` B ', `' и
`D '. Обратите внимание, что если IFS параметру присваивается пустая строка, разделение полей не производится;
если параметр не задан, используется значение по умолчанию для пробела, табуляции и новой строки.
Результаты замены, если не указано иное, также подлежат скобке.
расширение и расширение имени файла (см. соответствующие разделы ниже).
Подстановка команды заменяется выводом, сгенерированным указанной командой, которая
запускается в подоболочке. Для $(команду) замены, обычные правила цитирования используются, когда
команду анализируется, однако, для `команду` форма, а \ за которым следует любой из $, ` or \ is
раздетый (а \ за которым следует любой другой символ, не изменяется). Как особый случай в командовании
замены, команда вида < файл интерпретируется как замена содержимого
of файл ($ (<foo) имеет тот же эффект, что и $ (cat foo), но выполняется более
эффективно, потому что ни один процесс не запускается).
ПРИМЕЧАНИЕ: $(команду) выражения в настоящее время анализируются путем нахождения подходящей круглой скобки,
независимо от цитирования. Надеюсь, это скоро будет исправлено.
Арифметические подстановки заменяются значением указанного выражения. Для
Например, команда эхо $ ((2 + 3 * 4)) печатает 14. См. арифметические выражения для
описание выражение.
параметры
Параметры - это переменные оболочки; им могут быть присвоены значения, и их значения могут быть
доступ осуществляется с помощью подстановки параметра. Имя параметра может быть одним из специальных
параметры одиночной пунктуации или цифры, описанные ниже, или буква, за которой следует
ноль или более букв или цифр (`_ 'считается буквой). Последнюю форму можно трактовать как
массивы, добавив индекс массива в форме: [выраж] в котором выраж это арифметика
выражение. Индексы массива в настоящее время ограничены диапазоном от 0 до 1023 включительно.
Подстановки параметров принимают вид $имя, ${имя} or ${имя[выраж]}, Где имя - это
имя параметра. Если подстановка выполняется для параметра (или параметра массива
element), который не установлен, подставляется пустая строка, если только существительное вариант (набор -o
существительное or набор -u), и в этом случае возникает ошибка.
Параметрам можно присвоить значения несколькими способами. Во-первых, оболочка неявно устанавливает
некоторые параметры, такие как #, PWD, так далее.; только так специальный одиночный символ
параметры установлены. Во-вторых, параметры импортируются из среды оболочки в
запускать. В-третьих, параметрам можно присвоить значения в командной строке, например,
`FOO = бар'устанавливает для параметра FOO значение bar; множественные назначения параметров могут быть даны на
единую командную строку, и за ними может следовать простая команда, и в этом случае
назначения действуют только на время действия команды (такие назначения также
экспортированы, последствия этого см. ниже). Обратите внимание, что и имя параметра, и =
должны быть не заключены в кавычки, чтобы оболочка распознала назначение параметра. Четвертый способ
установка параметра осуществляется с помощью экспорт и только для чтения команды; см. их описания в
раздел "Выполнение команд". Пятое, для и выберите циклы задают параметры, а также
Getopts, читать и набор -A команды. Наконец, параметрам можно присвоить значения, используя
операторы присваивания внутри арифметических выражений (см. Арифметические выражения ниже) или
используя ${имя=ценностное } форма подстановки параметров (см. ниже).
Параметры с атрибутом экспорта (задаются с помощью экспорт команда, или по параметру
присваивания, за которыми следуют простые команды) помещаются в среду (см. среда(5)) из
команды, выполняемые оболочкой как имя=ценностное пары. Порядок, в котором параметры появляются в
окружение команды не указано. Когда оболочка запускается, она извлекает параметры
и их значения из своей среды и автоматически устанавливает атрибут экспорта для
эти параметры.
Модификаторы могут быть применены к ${имя} форма подстановки параметров:
${имя:-слово}
if имя установлен и не равен нулю, он заменяется, в противном случае слово заменяется.
${имя:+слово}
if имя установлено и не равно нулю, слово заменяется, иначе ничего не заменяется.
${имя:=слово}
if имя установлен и не равен нулю, он заменяется, в противном случае ему присваивается слово и
итоговая стоимость имя заменяется.
${имя:?слово}
if имя установлен и не равен нулю, он заменяется, в противном случае слово печатается на стандартном
ошибка (предшествует имя:) и возникает ошибка (обычно вызывающая завершение работы оболочки
сценарий, функция или.-сценарий). Если слово не указано, строка `параметр null или нет
set 'вместо этого используется.
В приведенных выше модификаторах : можно опустить, и в этом случае условия зависят только от
имя установленный (в отличие от установленного, а не нулевого). Если слово необходим, параметр, команда,
на нем производятся арифметические операции и подстановка тильды; если слово не нужно, это не
оценен.
Также можно использовать следующие формы подстановки параметров:
$ {#имя}
Количество позиционных параметров, если имя is *, @ либо не указано, либо длина
строкового значения параметра имя.
$ {#имя[*]}, $ {#имя[@]}
Количество элементов в массиве имя.
${имя#описания}, ${имя##описания}
If описания соответствует началу значения параметра имя, совпавший текст
удален из результата подстановки. Один # приводит к самому короткому матчу, два
#Результаты самого длинного матча.
${имя%описания}, ${имя%%описания}
Подобно ${..#..} подстановка, но она удаляет с конца значения.
Следующие специальные параметры неявно устанавливаются оболочкой и не могут быть установлены
напрямую с помощью присвоений:
!
Идентификатор последнего запущенного фонового процесса. Если нет фоновых процессов
запущен, параметр не установлен.
#
Количество позиционных параметров (т.е., $1, $2, и так далее).
$
Идентификатор процесса оболочки или PID исходной оболочки, если это подоболочка.
-
Объединение текущих однобуквенных опций (см. набор команда ниже для списка
вариантов).
?
Статус завершения последней выполненной неасинхронной команды. Если последняя команда была
убит сигналом, $? установлено 128 плюс номер сигнала.
0
Имя, с которым была вызвана оболочка (то есть argv [0]), или имя-команды если бы это было
вызывается с -c вариант и имя-команды был поставлен, или файл аргумент, если
это было поставлено. Если POSIX опция не установлена, $0 это имя текущего
функция или сценарий.
1 ... 9
Первые девять позиционных параметров, которые были переданы оболочке, функции или
.-скрипт. Доступ к другим позиционным параметрам можно получить, используя $ {number}.
*
Все позиционные параметры (кроме параметра 0), т.е., $1 $2 $3.... При использовании вне
двойные кавычки, параметры - это отдельные слова (которые подвергаются разбиению на слова);
при использовании в двойных кавычках параметры разделяются первым символом
IFS параметр (или пустая строка, если IFS нулевой).
@
Такой же как $*, если он не используется в двойных кавычках, и в этом случае отдельное слово
генерируется для каждого позиционного параметра - если нет позиционных параметров, нет
генерируется слово ("$ @" можно использовать для доступа к аргументам дословно, без потери
нулевые аргументы или разделение аргументов пробелами).
Следующие параметры устанавливаются и / или используются оболочкой:
"CDPATH"
Путь поиска для cd встроенная команда. Работает так же, как PATH для тех
каталоги, не начинающиеся с / in cd команды. Обратите внимание, что если CDPATH установлен и
не содержать. ни пустой путь, текущий каталог не ищется.
КОЛОННЫ
Установите количество столбцов на терминале или в окне. В настоящее время установлено на смещ_по_столбцам
значение, как сообщает стти(1) если это значение не равно нулю. Этот параметр используется
интерактивные режимы редактирования строк и выберите, набор -o и убивать -l команды для форматирования
информация в столбцах.
ОШИБКА
Целочисленное значение переменной errno оболочки - указывает причину, по которой последняя система
звонок не удался.
Еще не реализовано.
ВЫПОЛНИТЬ
Если установлено, предполагается, что этот параметр содержит оболочку, которая будет использоваться для выполнения
команды, которые Execve(2) не выполняется и не начинается с символа `#! оболочка'
последовательность.
ФКЕДИТ
Редактор, используемый fc команда (см. ниже).
ПУТЬ
Подобно PATH, но используется, когда выполняется неопределенная функция для поиска файла, определяющего
функция. Он также ищется, когда команда не может быть найдена с помощью PATH. Посмотреть
Функции ниже для получения дополнительной информации.
ГЛАВНАЯ
Каталог по умолчанию для cd команда и значение, подставленное для неквалифицированного
~ (см. Расширение Тильды ниже).
IFS
Внутренний разделитель полей, используемый при замене и читать команда, чтобы разделить
значения в отдельные аргументы; обычно устанавливается на пробел, табуляцию и новую строку. Видеть
Подстановка выше для подробностей.
Примечание: этот параметр не импортируется из среды при запуске оболочки.
POSH_VERSION
Версия posh (только чтение).
ЛИНЕНО
Номер строки выполняемой в данный момент функции или сценария оболочки.
ЛИНИИ
Установите количество строк на терминале или в окне.
Еще не реализовано.
ОЛДПВД
Предыдущий рабочий каталог. Отключить, если cd не сменил каталоги успешно
с момента запуска оболочки или если оболочка не знает, где она находится.
ОПТАРГ
Когда используешь Getopts, он содержит аргумент для анализируемой опции, если она требуется.
ОПТИНОВАТЬ
Индекс последнего аргумента, обработанного при использовании Getopts. Присваивая 1 этому
параметр причины Getopts обрабатывать аргументы с самого начала, когда в следующий раз
вызван.
PATH
Список каталогов, разделенных двоеточиями, в которых выполняется поиск при поиске команд и
.'d файлы. Пустая строка, образованная начальным или конечным двоеточием или двумя соседними
двоеточие трактуется как `. ', текущий каталог.
ППИД
Идентификатор процесса родительской оболочки (только для чтения).
PS1
Основная подсказка для интерактивных оболочек. Приглашение печатается дословно (т.е., Не
замены сделаны). По умолчанию для пользователей без полномочий root - '$', '# 'для root ..
PS2
Вторичная строка приглашения, по умолчанию `> ', используется, когда для завершения
команда.
PS4
Используется для префикса команд, которые печатаются во время трассировки выполнения (см. набор -x команду
ниже). Приглашение печатается дословно (т.е., замены не производятся). По умолчанию
`+ '.
PWD
Текущий рабочий каталог. Может быть unset или null, если оболочка не знает, где она находится.
оТВЕТИТЬ
Параметр по умолчанию для читать команда, если имена не указаны. Также используется в выберите
циклы для хранения значения, считанного со стандартного ввода.
TMPDIR
Временные файлы оболочки каталога создаются в. Если этот параметр не установлен, или
не содержит абсолютный путь к каталогу, доступному для записи, временные файлы
создан в / tmp.
Тильда расширение
Расширение тильды, которое выполняется параллельно с заменой параметра, выполняется на словах
начиная с не цитируемого ~. Символы, следующие за тильдой, до первого /, Если
любой, предполагается, что это имя для входа. Если имя для входа пустое, + or -, значение
ГЛАВНАЯ, PWDэта информация поможет вам разобраться, почему Gamer’s Galaxy — ваш лучший выбор. ОЛДПВД параметр подставляется соответственно. В противном случае файл паролей
ищется имя входа, и выражение тильды заменяется на имя пользователя
домашний каталог. Если имя для входа не найдено в файле паролей или если цитируется или
в имени входа происходит подстановка параметров, подстановка не производится.
В назначениях параметров (предшествующих простой команде или
аргументы псевдоним, экспорти только для чтения, тильда раскрывается после любого двоеточия без кавычек
(:), а имена пользователей также разделяются двоеточиями.
Домашний каталог с ранее развернутыми именами входа кэшируется и используется повторно. В псевдоним -d
команда может использоваться для составления списка, изменения и добавления в этот кеш (или, `псевдоним -d
fac = / usr / local / services; cd ~ fac / bin ').
Файл Имя Шаблоны
Шаблон имени файла - это слово, содержащее один или несколько не заключенных в кавычки ? or * символы или [..]
последовательности. После раскрытия фигурных скобок оболочка заменяет шаблоны имен файлов.
с отсортированными именами всех файлов, соответствующих шаблону (если файлы не совпадают, слово
остается без изменений). Элементы шаблона имеют следующее значение:
"?"
соответствует любому отдельному символу.
*
соответствует любой последовательности символов.
[..]
соответствует любому из символов в скобках. Диапазоны символов могут быть
задается разделением двух символов символом -, или, [а0-9] соответствует букве a or
любая цифра. Чтобы представить себя, - должен быть указан либо первый, либо
последний символ в списке символов. Аналогично ] должен быть процитирован или первый
символ в списке, если он представляет себя вместо конца списка. Также,
a ! появление в начале списка имеет особое значение (см. ниже), поэтому, чтобы
представлять себя, оно должно быть процитировано или появиться позже в списке.
[!..]
" У аборигенов [..], за исключением того, что он соответствует любому символу, не заключенному в квадратные скобки.
Обратите внимание, что в настоящее время шикарный никогда не подходит. и .., но оригинальные ksh, Bourne sh и bash
сделать, так что это, возможно, придется изменить (очень плохо).
Обратите внимание, что ни один из вышеперечисленных элементов шаблона не соответствует ни точке (.) В начале
имя файла или косая черта (/), даже если они явно используются в [..] последовательность; так же
имена. и .. никогда не совпадают, даже по шаблону .*.
Классы символов POSIX (т.е., [:имя класса:] внутри [..] выражение) еще не
реализованы.
Ввод, вывод Перенаправление
Когда команда выполняется, ее стандартный ввод, стандартный вывод и стандартная ошибка (файл
дескрипторы 0, 1 и 2 соответственно) обычно наследуются от оболочки. Три
Исключением являются команды в конвейерах, для которых стандартный ввод и / или стандартный
вывод - это те, которые настроены конвейером, асинхронные команды, созданные, когда управление заданием
отключен, для которого изначально задан стандартный ввод из / dev / null, и команды для
для которых было указано любое из следующих перенаправлений:
"> файл"
стандартный вывод перенаправляется на файл. Если файл не существует, он создан; если оно
существует, это обычный файл и никчемный опция установлена, возникает ошибка,
в противном случае файл усекается. Обратите внимание, что это означает команду CMD < Foo > Foo предусматривает
открытый Foo для чтения, а затем обрезать его, когда он откроет для записи, прежде чем CMD
получает шанс прочитать Foo.
">| файл"
так же, как >, за исключением того, что файл усекается, даже если никчемный опция установлена.
">> файл"
так же, как >, за исключением файла, к которому добавляется существующий файл, а не усекается.
Кроме того, файл открывается в режиме добавления, поэтому запись всегда идет в конец файла.
(См. открытый(2 г.)).
"< файл"
стандартный ввод перенаправляется из файл, который открыт для чтения.
"<> файл"
так же, как <, за исключением того, что файл открыт для чтения и записи.
"<< маркер"
после прочтения командной строки, содержащей такое перенаправление (здесь называется
документ) оболочка копирует строки из источника команды во временный файл до тех пор, пока
соответствие строки маркер читается. Когда команда выполняется, стандартный ввод
перенаправлен из временного файла. Если маркер не содержит кавычек,
содержимое временного файла обрабатывается каждый раз так, как если бы оно было заключено в двойные кавычки
команда выполняется, поэтому заменяются параметры, команды и арифметические операции.
выполняется вместе с обратной косой чертой (\) убегает для $, `, \ и \новая линия. Если несколько здесь
документы используются в одной командной строке, они сохраняются по порядку.
"<< - маркер"
так же, как <<, за исключением того, что ведущие табуляторы удаляются из строк в данном документе.
"<& fd"
стандартный ввод дублируется из файлового дескриптора fd. fd может быть одной цифрой,
с указанием номера существующего файлового дескриптора, буква pс указанием
файловый дескриптор, связанный с выводом текущего сопроцессора, или символ
-, указывающий, что стандартный ввод должен быть закрыт.
">& fd"
так же, как <&, за исключением того, что операция выполняется на стандартном выводе.
В любом из вышеуказанных перенаправлений дескриптор файла, который перенаправляется (т.е., стандартный
ввод или стандартный вывод) могут быть явно указаны, если перед перенаправлением
одна цифра. Параметры, команды и арифметические замены, замены тильды и (если
оболочка интерактивна) генерация имени файла выполняется на файл, маркер и
fd аргументы перенаправлений. Однако обратите внимание, что результаты генерации любого имени файла
используются только при сопоставлении одного файла; если совпадают несколько файлов, слово с
используются символы генерации нерасширенных имен файлов.
Для простых команд перенаправления могут появляться в любом месте команды, для
составные команды (if заявления, и так далее), любые перенаправления должны появляться в конце.
Перенаправления обрабатываются после создания конвейеров и в том порядке, в котором они указаны, поэтому
кошка / foo / bar 2> & 1 > / DEV / нуль | кошка -n напечатает ошибку с номером строки, добавленным к
его.
Арифметический Expressions
Внутри можно использовать целочисленные арифметические выражения. $ ((..)) выражения, внутри массива
Ссылки (или, имя[выраж]), как числовые аргументы тестXNUMX команда, и как значение
присваивания целочисленному параметру.
Выражение может содержать буквенно-цифровые идентификаторы параметров, ссылки на массивы и целые числа.
константы и могут быть объединены со следующими операторами C (перечислены и сгруппированы в
возрастающий порядок приоритета).
Унарные операторы:
+ - ! ~ ++ --
Бинарные операторы:
,
= *= /= %= += -= << = >> = &= ^= |=
||
&&
|
^
&
== !=
< <= >= >
<< >>
+ -
* / %
Тернарный оператор:
?: (приоритет сразу выше, чем присвоение)
Операторы группировки:
( )
Целочисленные константы могут быть указаны с произвольным основанием с использованием обозначения Использование темпера с изогнутым основанием#номер,
в котором Использование темпера с изогнутым основанием является десятичным целым числом, определяющим основание, и номер это число в
указанная база.
Операторы оцениваются следующим образом:
"унарный +"
Результат - это аргумент (включен для полноты).
"унарный -"
отрицание.
"!"
логическое нет; результат равен 1, если аргумент равен нулю, и 0, если нет.
"~"
арифметические (побитовые) нет.
"++"
приращение; должен применяться к параметру (а не к литералу или другому выражению) -
увеличивается на 1. При использовании в качестве префиксного оператора результатом является
увеличенное значение параметра, при использовании в качестве постфиксного оператора результатом является
исходное значение параметра.
"++"
похож на ++, за исключением того, что параметр уменьшается на 1.
","
разделяет два арифметических выражения; сначала оценивается левая часть, затем
Правильно. Результат - значение выражения в правой части.
"="
назначение; переменной слева присваивается значение справа.
"*= /= %= += -= << = >> = &= ^= |="
операторы присваивания; = такой же как = ( ).
"||"
логический или; результат равен 1, если любой из аргументов не равен нулю, и 0, если нет. Право
Аргумент оценивается, только если левый аргумент равен нулю.
"&&"
логический и; результат равен 1, если оба аргумента не равны нулю, и 0, если нет. Право
Аргумент оценивается, только если левый аргумент не равен нулю.
"|"
арифметические (побитовые) или.
"^"
арифметическое (побитовое) исключающее ИЛИ.
"&"
арифметические (побитовые) и.
"=="
равный; результат равен 1, если оба аргумента равны, и 0, если нет.
"!="
не равный; результат равен 0, если оба аргумента равны, и 1, если нет.
"<"
меньше, чем; результат равен 1, если левый аргумент меньше правого, и 0, если нет.
"<= >= >"
меньше или равно, больше или равно, больше чем. См. <.
"<< >>"
сдвиг влево (вправо); результат - левый аргумент со сдвинутыми битами влево (вправо)
на сумму, указанную в правильном аргументе.
"+ - * /"
сложение, вычитание, умножение и деление.
"%"
остаток; результат - остаток от деления левого аргумента на
Правильно. Знак результата не указан, если любой из аргументов отрицательный.
" ? : "
if не равно нулю, результат В противном случае .
функции
Функции определяются с помощью оболочки Bourne / POSIX. имя() синтаксис. Функции похожи на
.-scripts в том смысле, что они выполняются в текущей среде, однако, в отличие от.-scripts,
аргументы оболочки (т.е., позиционные параметры, $1, и так далее) никогда не видны внутри них.
Когда оболочка определяет расположение команды, поиск функций выполняется после
специальные встроенные команды, и перед обычными и нерегулярными встроенными командами, и перед
PATH ищется.
Существующую функцию можно удалить с помощью сброшен -f имя-функции.
Поскольку функции выполняются в текущей среде оболочки, параметры присваиваются.
внутренние функции видны после завершения функции.
Статус выхода функции - это статус последней команды, выполненной в функции. А
функция может быть завершена немедленно, используя возвращают команда; это также может быть использовано
чтобы явно указать статус выхода.
Command Типы
После оценки аргументов командной строки, перенаправлений и назначения параметров
определяется тип команды: специальная встроенная, функциональная, обычная встроенная или
имя файла для выполнения, найденного с помощью PATH параметр. Проверки производятся в вышеуказанном
порядок. Специальные встроенные команды отличаются от других команд тем, что PATH параметр
не используются для их поиска, ошибка во время их выполнения может вызвать неинтерактивную оболочку
для выхода и назначения параметров, которые указаны перед командой, сохраняются после
команда завершена. Чтобы запутать, если опция posix отключена (см. набор
команда ниже) некоторые специальные команды очень особенные, так как нет разделения полей, файл
подстановка подстановки, раскрытие фигурных скобок или раскрытие тильды выполняется для аргументов, которые выглядят как
задания. Обычные встроенные команды отличаются только тем, что PATH параметр
не привык их находить.
работа Control
Управление заданиями относится к способности оболочки отслеживать и контролировать работе, которые являются процессами
или группы процессов, созданные для команд или конвейеров. Как минимум, оболочка сохраняет
отслеживать состояние фона (т.е., асинхронные) существующие задания; это
информация может быть отображена с помощью работе команда. Если управление заданиями полностью включено
(с помощью набор -m or набор -o монитор), как и для интерактивных оболочек, процессы задания
помещаются в свою группу процессов, задания переднего плана можно остановить, набрав
приостановить символ с терминала (обычно ^ Z), задания могут быть перезапущены в любом
передний план или фон, используя fg и bg соответственно, а состояние
терминал сохраняется или восстанавливается при остановке или перезапуске задания переднего плана соответственно.
Обратите внимание, что только команды, которые создают процессы (или, асинхронные команды, подоболочка
команды, а также не встроенные, нефункциональные команды) могут быть остановлены; такие команды, как читать
не может быть.
Когда работа создается, ей присваивается номер работы. Для интерактивных оболочек это число
напечатано внутри [..], за которыми следуют идентификаторы процессов в задании, когда
выполняется асинхронная команда. Работа может быть упомянута в bg, fg, работе, убивать и ждать
команды либо по идентификатору процесса последнего процесса в конвейере команд (как хранится
в $! параметр) или поставив перед номером задания знак процента (%). Другой
Последовательности процентов также могут использоваться для обозначения заданий:
%+ %+ Команда самых недавно остановившийся работа, или, if
там нет остановившийся рабочие места самый старший
Бег работу.
%%, % %%, % Такой же как %+.
% -% - Работа, которая
быть %+ работа, если
позже не
существовать.
%n %n Работа с
номер работы n.
%?string %?string Работа, содержащая
строка string
(ошибка возникает, если
несколько рабочих мест
совпадает).
%string %string Работа, начинающаяся с
string string (ошибка
происходит, если несколько заданий
совпадает).
Когда работа меняет состояние (или, фоновое задание завершается или задание переднего плана остановлено),
оболочка выводит следующую информацию о состоянии: [номер] флажок статус команду в котором
" номер"
- это номер работы.
" флажок"
is + or - если работа %+ or %- задание, соответственно, или пробел, если нет ни того, ни другого.
" статус"
указывает текущее состояние работы и может быть
"Бег"
задание не было ни остановлено, ни завершено (обратите внимание, что выполнение не обязательно означает
потребляющие процессорное время - процесс мог быть заблокирован в ожидании какого-либо события).
"Готово [(номер)]"
работа завершена. номер - статус завершения задания, который не указывается, если статус
это ноль.
"Остановлена [(сигнал)]"
работа была остановлена указанным сигнал (если сигнал не поступает, задание было
остановлен SIGTSTP).
"описание сигнала [(основной сброшен)]"
задание было прервано сигналом (или, Ошибка памяти, зависание, и так далее - использовать убивать -l для
список описаний сигналов). В (основной сброшен) сообщение указывает на созданный процесс
основной файл.
" команду"
это команда, которая создала процесс. Если в работе несколько процессов,
тогда у каждого процесса будет строка, показывающая его команду и, возможно, его статус, если это
отличается от статуса предыдущего процесса.
Когда делается попытка выйти из оболочки, когда есть задания в остановленном состоянии,
оболочка предупреждает пользователя, что есть остановленные задания, и не завершает работу. Если еще одна попытка
немедленно вызывается для выхода из оболочки, остановленные задания отправляются HUP сигнал и оболочка
выходы. Аналогично, если поЬир параметр не установлен, и есть выполняющиеся задания, когда
делается попытка выйти из оболочки входа в систему, оболочка предупреждает пользователя и не выходит. Если
немедленно предпринимается другая попытка выйти из оболочки, выполняющиеся задания отправляются HUP
сигнал и оболочка уходит.
ВСТРОЕННЫЙ КОММУНАЛЬНЫЕ УСЛУГИ
posh реализует следующие встроенные утилиты:
·.
·:
· [
· перерыв
· Встроенный
· Продолжить
· Eval
· Exec
· выход
· ложный
· возвращение
· установленный
· сдвиг
· Раз
· ловушка
· ждать
· читать
· тестовое задание
· правда
· Umask
· Отключено
· CD
· Команда
· Эхо
· Экспорт
· Getopts
· Убить
· местный
· Pwd
· Только для чтения
Используйте шикарные онлайн-услуги с помощью сервисов onworks.net