Реферат Курсовая Конспект
Язык оболочки - раздел Программирование, Интерфейс пользователя ОС Linux и программирование на языке оболочки Язык Оболочки Является Разновидностью Языка Программирования (Он Похож На Язы...
|
Язык оболочки является разновидностью языка программирования (он похож на язык командных файлов MS DOS). Программы, написанные на языке оболочки, оформляются в виде текстовых исполняемых файлов, называемых файлами скриптов. Пример простого скрипта:
# Пример простого скрипта
date
who
ls
Пусть имя данного файла - mycom. Для его выполнения необходимо осуществить следующие шаги:
1. Сделать его исполняемым: $chmod u+x mycom
2. Выполнить его: $mycom
Файл скрипта может выполнить не обязательно оболочка, загруженная по умолчанию, но и любая другая. Для этого в файле необходимо указать комментарий специального вида, начинающийся с '#!'. Например, следующий скрипт будет выполнен оболочкой sh:
#! /bin/sh
date
who
ls
На рис. 1 представлены основные компоненты языка оболочки.
1. Переменные окружения (или стандартные переменные оболочки):
PATH - каталоги, разделенные символом ':', в которых оболочка ищет команды;
PWD - текущий рабочий каталог;
TERM - тип терминала;
SHELL - имя пути для оболочки по умолчанию;
Вывод всех переменных окружения: $set или $printenv
Вывод указанной переменной окружения: $echo $SHELL
Установка значения для переменной окружения: %set TERM=vt100 (без пробелов!)
Экспорт переменной окружения: $EDITOR=emacs
$export EDITOR или $export EDITOR=emacs
2. Переменные, определенные пользователем (или именованные переменные)
Пример присвоения значения именованной переменной count: count=10 (без пробелов!)
Для ссылки на значение переменной в программе перед ее именем указывается $, например:
$echo $count
3. Позиционные параметры (доступны только для чтения) принимают значения аргументов из командной строки. Их имена: $0 $1 $2 … $9.
4. Специальные переменные оболочки:
$? - код завершения последней выполненной команды;
$# - число аргументов в командной строке при запуске данной команды;
$$ - идентификатор процесса оболочки;
$! - идентификатор последнего фонового процесса, запущенного в оболочке.
5. Функции ввода-вывода: echo - функция вывода; read - функция ввода.
Задание 4.
4.1. Напишите простую программу script1 на языке оболочки, которая:
· печатает имя и выводит содержимое текущего каталога;
· выводит код завершения последней команды (команды ls);
· экспортирует переменную окружения SERVER_NAME и задает ей значение "intel.com";
· выводит сообщение End of program.
Сделайте файл script1 исполняемым, затем выполните команду $script1
Поясните результат. Как следует ввести команду для запуска script1 из Вашего каталога? Приведите два варианта: а) с указанием абсолютного пути; б) с указанием относительного пути.
4.2. Включите Ваш каталог lab1 в PATH: $PATH=$PATH:$HOME/lab1 Запишите в отчет значение переменной окружения PATH. Выполните еще раз команду $script1
4.3. Linux, как и UNIX, традиционно хранит исполняемые файлы в каталогах bin. Создайте в Вашем каталоге подкаталог bin и скопируйте в него script1. Запустите script1 из bin.
Задание 5. Наберите в каталоге lab1 и выполните следующие скрипты. Запишите в отчет текст каждого примера и полученные результаты с пояснениями.
script2 #Печать позиционных параметров
echo $0 $1 $2 $3 $4 $5 $6 $7 $8 $9
Можно ли вывести параметры с номерами больше 9?
script3#Печать позиционных параметров
echo Всего $# параметров: $*
Работает ли данный пример, если число параметров в командной строке больше 9?
script4echo Введите имя и фамилию
read name surname
echo $name $surname, Вы ввели $# параметров:
echo $*
6. Арифметические операции над целыми числами выполняются при помощи команды expr. Пример (используются обратные кавычки!):
#Сложить и вывести два позиционных параметра
sum=`expr $1 + $2`
echo $sum
7. Оператор if и команда test. В следующем примере set `date` запускает команду date и присваивает ее результаты позиционным параметрам. Первым параметром является день недели.
set `date`
if test $1 = Mon
then
echo "Сегодня начало недели"
else
echo "Сегодня другой день"
fi
8. Циклы (команды for, while, loop)
Задание 6. Выполните следующие примеры. В примере 6.1 параметры в командной строке должны быть целыми числами. Запишите в отчет текст каждого примера и полученные результаты с пояснениями.
script5 #Печать значений позиционных параметров, деленных на два
for number in $*
do
half=`expr number / 2`
echo $number $half
done
script6#Печать позиционных параметров 5 раз
count=5
while test $count -gt 0
do
echo $*
count=`expr $count - 1`
done
script7 #Печать позиционных параметров 5 раз
count=5
until test $count -eq 0
do
echo $*
count=`expr $count - 1`
done
Задание 7. Разработать скрипт rmfile, предназначенный для "безопасного" (с подтверждением) удаления файла. Скрипт запускается командой $rmfile имя_файла. Скрипт
1) проверяет, является ли параметр командной строки именем файла. В операторе if используйте команду
test -f $<переменная_позиц.параметр№1>
2) если параметр не является файлом, то выводит соответствующее сообщение;
3) если параметр является файлом, то спрашивает, действительно ли пользователь желает удалить файл имя_файла; если да, то удаляет файл и сообщает, что файл удален; усли нет, то печатает соответствующее сообщение.
Запишите в отчет текст файла rmfile.
– Конец работы –
Эта тема принадлежит разделу:
На сайте allrefs.net читайте: "Интерфейс пользователя ОС Linux и программирование на языке оболочки"
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Язык оболочки
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов