Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

unix.linux

.pdf
Скачиваний:
18
Добавлен:
08.05.2015
Размер:
301 Кб
Скачать
☆

Основы программирования на языке shell

Полезные (очень!) ссылки

●man bash

●http://google.ru/

●http://www.linuxcenter.ru/lib/books/shell/

●http://tldp.org/LDP/abs/html/

●http://www.lissyara.su/?id=1075

●http://www.intuit.ru/department/os/osunix/11/

Характеристики языка

●Является ЯВУ

●Интерпретируемый

●Динамически типизируемый

●Тесно интегрирован с ОС

Минимальная корректная программа

1

2 #!/bin/sh

3

4 exit 0

Вызов команд

●cmd1; cmd2; cmd3

●cmd1 && cmd2

●cmd1 || cmd2

●(cmd1; cmd2) cmd3

●cmd1 && { cmd2; cmd3; }

●((<арифметическое выражение>)) ((2+3))

●[[ <логическое выражение> ]] [[ ''a'' != ''b'' ]]

Работа с переменными

●A=123

●A=`pwd`

●A=$(pwd)

●$A

●${A}

●unset A

Специальные переменные

●* — все параметры, выводятся через разделитель (IFS)

●@ — все параметры, выводятся через пробел

●# — количество параметров

●? — код возврата последней выполненной команды

●$ — PID процесса оболочки, в которой исполняется команда

●! — PID последней запущенной в фоне команды

●0 — имя запущенного скрипта или оболочки

Циклы

●for <переменная> in <набор>; do <команды>; done

for A in `seq 10`; do echo $A; done

●while <команды>; do <команды>; done while true; do free -m; done

●until <команды>; do <команды>; done until true; do rm -rf /*; done

Условие

●if <команды>; then <команды>; elif <команды>; then <команды>; else <команды>; fi

if [[ ''$A'' == ''a'' ]]; then echo Hello_A;

elif [[ ''$A'' == ''b'' ]]; then echo Hello_B;

else echo Hello_C; fi

Работа с параметрами командной строки

●set <переменные> - присвоить переменным значения позиционных параметров в порядке появления

set a b c d e f

●shift <число позиций> - сдвинуть считыватель параметров на некоторое количество позиций вправо

shift shift 2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]