-sh
SH - Стандартная оболочка
$ sh [опции] [аргументы]
Опции:
-c cmd выполнить cmd (по умолчанию читать команды из файла -
первого аргумента)
-e если неинтерактивный, выйти если команда ошибочна
-i установить интерактивный режим
-k все ключевые аргументы помещать в среду
-n читать команды без выполнения
-r установить ограниченный режим
-s читать команды со станд. ввода
-t прочитать и выполнить только одну команду
-u установить ошибку при подстановке неопределенных
переменных
-v печатать введенные строки как они прочитаны
-x печатать команды, как выполнены, с аргументами
+опции выключить опции
Ввод/вывод
file использовать file как станд. вывод (stdout)
>>file как > , но писать в конец файла
<&n станд. ввод - результат дублирования дескриптора n (stdin)
>&n станд. вывод - результат дублирования дескриптора n (stdout)
<& - закрыть станд. ввод (stdin)
>& - закрыть станд. вывод (stdout)
<)
Специальные символы
| канал
; разделитель команд
& запустить процесс в фоновом режиме
&& следующая команда выполняется если предыдущая завершилась
успешно
|| следующая команда выполняется если предыдущая завершилась
неуспешно
' символы, заключенные в ', представляют самих себя;
кавычка ' может экранироваться парой двойных кавычек
" как предыдущая, но подставляются переменные
` выполнить команду взятую в `
\ игнорировать специальный смысл следующего символа
? отождествляется с любым символом
* отождествляется с 0 или более символов
[chars] отождествляется с любым из пречисленных в скобках
символов. Пара символов, разделенных знаком -,
обозначает отрезок алфавита, включающий указанные символы
если сразу вслед за [ идет !, шаблону удовлетворяет любой
символ, не перечисленный в скобках
# игнорировать символы до конца строки
Команды управления
: пустая команда; возвращает успешный код завершения
break [n] выход из цикла
case string in [pat1[pat2]...)list;;]...esac
выполнить list если pat успешно сопоставлена с string
continue [n] начать следующую итерацию цикла
exit [n] выход с кодом возврата n
for name [in строки] do list done
выполнить list установив name для каждой стоки
if list1 then list2 [elif list3 then list4]...[else list5] fi
если код завершения list1 успешный,
выполняется list2 иначе ...
(list) выполнить list в порожденной оболочке
{list;} list выполняется текущей оболочкой
while list1 do list2 done
цикл; если последняя команда в list1 завершается успешно,
выполняется list2
until list1 do list2 done
цикл; если последняя команда в list1 завершается неуспешно,
выполняется list2
Специальные команды
. file прочитать и выполнить команды из файла
cd [аргумент] изменить текущий каталог на arg
eval [аргументы] вычислить аргументы и выполнить результат
exec [команда] выполнять команду
export [имена] экспортировать имена в среду команд
newgrp [группа] войти в новую группу
read [имена] прочитать станд. ввод и присвоить именам
readonly [имена] отметить имена только для чтения; печатать список если нет
имен
set -флаги [аргументы]
установить флаги [аргументы]
set +флаги [аргументы]
выключить флаги
shift переименовать позиционные параметры: $1=$2 и т. д.
test вычислить условное выражение (смотри test)
times печатать суммарное пользовательское и системное время
затраченное порожденными поцессами
trap [arg][n] выполнить arg если получен сигнал n
ulimit [-f[n]] предел файлов n блоков;
если нет аргументов, печатается текущий предел
-f предел только когда записываются файлы
umask [n] установить маску доступа n для создания файла (восьмеричное)
wait [n] ждать завершения процесса n; если нет n, ждать завершения
всех порожденных процессов
|