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

Основы ремесла 2

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

•Задание:

•Вывести в файл lslist список файлов текущего каталога

•Сравнить вывод команд cat nfile и cat 2>/dev/null nfile где nfile – имя заведомо несуществующего файла

Последовательное выполнение команд

•Последовательное выполнение команд вне зависимости от исхода работы предыдущей: с помощью символа ‘;’. Пример:

./configure ; make ; make install

•Последовательное выполнение команд при условии успешного завершения предыдущих: с помощью символа ‘&&’. Примеры:

./configure && make && make install mkdir newdir && cp lsfile newdir

•Выполнение команды, если предыдущая завершилась ошибкой: с помощью символа ‘||’. Пример:

cat nfile 2>/dev/null || echo Error!

Конвейеры

•Конвейер – это последовательность команд, разделенных символом ‘|’. При выполнении оболочка переназначает вывод каждой команды (кроме последней) на ввод следующей.

•Команда tee [-a] file перенаправляет вывод предыдущей команды на ввод следующей, сохраняя его в file

•Пример:

ls | wc -w

•Задание:

•Подсчитать количество файлов в текущем каталоге, имя которых содержит в начале либо строку file, либо строку new, и не заканчивается цифрой, записав имена этих файлов в файл filelist

•Вывести на экран модель процессора (model name) (с помощью команды grep и файла /proc/cpuinfo)

•Вывести на экран название VGA контроллера (с помощью команды grep и lspci)

Переменные оболочки

• Синтаксис:

name=value – присваивание значения value переменной name $name – получение значения переменной name

set – выводит список всех переменных в алфавитном порядке

•Задание:

•Создать переменные со своим именем фамилией и группой и вывести их в предложении:

•Name=MyName

•Surname=MySername

•Group=MyGroup

•echo “My name is $Name $Surname. My group is $Group”

Переменные окружения

•Переменная окружения (environment variable) – переменная, использующаяся для хранения текстовых строк пользователя и информации о настройках ОС.

•env – выводит все переменные окружения

•export MyEnv=string – устанавливает переменную окружения

MyEnv со значением string

•Задание:

•Установить свою переменную окружения, например MyName

•Посмотреть список всех переменных

Bash-скрипты

•Скрипт — простой список команд, записанный в файл.

•Задание:

•Создать файл и открыть в текстовом редакторе (н-р nano helloscrypt)

•Записать в файл строку:

echo “Hello, world!”

•Сохранить и выйти из текстового редактора

•Выставить права доступа на выполнение: chmod +x helloscrypt

•Запустить скрипт на выполнение одним из вариантов:

./helloscrypt sh helloscrypt

Подстановка результатов выполнения команд

• Синтаксис: name=$(command [args]) name=`command [args]`

где command [args] – команда с аргументами

•Задания:

•Создать скрипт со строкой echo “$(cat file)”, выполнить

•Аналогично с

dir=`pwd` echo “$dir”

Передача аргументов

•Параметры:

•$0 – имя файла, содержащего текст процедуры

•$1 $2 … $9 ${10} ${11} … - позиционные параметры

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

•$# - количество фактических аргументов (десятичное)

•$* - совокупность всех фактических аргументов (начиная с $1), разделенных пробелами

•$$ - идентификатор процесса

•$? - код завершения последней выполненной команды

Пример использования

• Создать скрипт threearg со следующими строчками:

echo Command name: $0 echo Arg1: $1

echo Arg2: $2 echo Arg3: $3

• Выполнить с какими-нибудь аргументами, например

./threearg qwerty 123 -flag