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

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

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

Задание:

Вывести в файл 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