рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Язык оболочки

Язык оболочки - раздел Программирование, Интерфейс пользователя ОС 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.

– Конец работы –

Эта тема принадлежит разделу:

Интерфейс пользователя ОС Linux и программирование на языке оболочки

На сайте allrefs.net читайте: "Интерфейс пользователя ОС Linux и программирование на языке оболочки"

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Язык оболочки

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

I. Пользовательский интерфейс ОС Linux
Вход в систему. После загрузки ОС введите в поле Login свое имя и нажмите <Enter>, в поле Password введите пароль и нажмите <Enter

Интерфейс командной строки
В ОС Linux чаще используется традиционный для UNIX интерфейс командной строки. Нажмите кнопку с изображением экрана на панели GNOME или дважды щелкните по иконке GNOME Terminal. От

Получение справочной информации о командах
Linux содержит описания стандартных команд, системных вызовов и стандартных библиотечных функций. Эти описания разделены на пронумерованные разделы. Наиболее важные из них: (1) Команды пол

Работа с файлами и каталогами
Полное имя файла определяет файл в иерархии каталогов. Путь к файлу начинается из корневого каталога, обозначаемого символом косой черты /. Абсолютное имя

Разрешения на доступ к файлу
Разрешения, или привилегии,на доступ к файлу (file access permissions) определяют, как файл может быть использован владельцем, группой поль

Вопросы
1. Что является командой в ОС Linux? 2. Каково назначение использованных в данной работе команд Linux? 3. Как выполнить команду в фоновом режиме? 4. Как ввести в командно

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги