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

unix.linux

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

Основы программирования на языке 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

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