Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2017-11-16 | 195 |
5.00
из
|
Заказать работу |
|
|
Каждая запущенная из командного интерпретатора программа получает три открытых потока ввода/вывода:
Стандартный ввод
Стандартный вывод
Стандартный вывод ошибок
По умолчанию все эти потоки ассоциированы с терминалом. Т.е. любая программа, использующая только стандартные потоки, будет ожидать ввода с клавиатуры терминала, весь вывод этой программы, включая сообщения об ошибках, будет происходить на экран терминала. Shell позволяет перенаправлять потоки ввода/вывода. Можно подавить вывод сообщений об ошибках, установить ввод или вывод из файла и даже передать вывод одной программы на ввод другой.
Ø File – перенаправление стандартного потока вывода в файл
>> Fail – добавление в fail данных из стандартного потока вывода.
< Fail – получение стандартного потока ввода из файла в fail
P1| P2 – передача стандартного потока вывода программы P1в поток ввода P2.
N > fail – переключение потока вывода из файла с дескриптором N в файл fail
N2 > fail – тоже, но записи добавляются в файл fail.
Стандартным потокам ввода, вывода и вывода ошибок присваиваются десктипторы – числовые значения, являющиеся указателями на соответствующий поток. Они, соответственно, равны 0,1 и 2. Перенаправлять потоки можно, используя эти числовые значения.
Например, чтобы подавить вывод ошибок, можно использовать следующую запись:
$ run 2 > /dev/ nul (псевдо устройство, удаляющее все введенные в него символы)
Все команды, которые вводятся в строке приглашения Shell, относятся к одной из следующих категорий:
1. Встроенные функции
2. Функции Shell, определенные пользователем
3. Внешние программы и утилиты
Запуск встроенной функции не требует порождения нового процесса, поскольку эта функция реализована в самой программе Shell.
|
Важнейшие встроенные функции Shell:
: - пустая команда. Она удобна для создания бесконечных циклов:
while:
do
……
done
break [N] – производит выход из цикла for или while.
Если параметр
break [N] | производит выход из цикла for или while. Если параметр указан, происходит выход из и выполненных циклов. |
cd [dir] | переход в каталог dir |
echo[string] | строка string выводиться на терминал |
exec run-me | выполняем программу runme |
exit | завершает работу интерпретатора |
jobs | вывод списка текущих заданий |
pwd | выводит имя текущего каталога |
return | осуществляет вывод и зфункци |
set | выводит список определенных переменных |
test | вычисляет условное выражение |
times | выводит суммарное время использования процессора программами |
type name | показывает как name будет интерпретироваться Shell |
и ряд других.
Синтаксис функции определенный пользователем имеет вид:
function () { command 1 command 2 ……….. } | т.е. телом функции является обычный sprint shell |
таким образом, пользователь может определить функцию командного интерпретатора и использовать ее как встроенную функцию Shell.
Пример.
Функция mcd, которая позволяет отобразить в применении Shell имя текущего каталога.
mcd ()
{ cd $* - передача аргументов запущенного скрипта
единым словом
PS1=’pwd’
}
В командной строке Shell можно запустить сразу несколько команд:
$pwd; date.
Можно запустить программу в фоновом режиме. В этом случае Shell не будет ждать завершения программы, а сразу выведет приглашение. Для этого строку команды необходимо завершить символом ‘&’.
Наконец, командный интерпретатор предоставляет возможность условного запуска команд. Например, если необходимо выполнить команду только в случае успешного завершения предыдущей, следует воспользоваться такой конструкцией:
cmd1 && cmd2.
В качестве примера приведу поле имени пользователя в файле паролей и в случае успеха – поле его имени в файле групп:
$grep sergey/etc/paсswd && grep sergey/etc/group.
Можно назначить выполнение команды только в случае неудачного завершения предыдущей. Для этого команды следует разделить двумя символами “|”:
|
$cmd1 || echo Команда завершилась неудачно.
Язык Shell позволяет осуществлять ветвление программы с помощью оператора if.
Синтаксис этого оператора следующий:
if условие
then
command1 Эти команды будут выполнены если
command2 истинно условие.
-------------
fi
Язык программирования Shell имеет также несколько операторов цикла:
1) while условие
do
command1
command2
-------------
done
2) until условие
do
command1
command2
-------------
done
3) for var in список
do
command1
command2
-------------
done
С помощью оператора while команды command1, command2 и т.д. будут выполняться пока условие не станет ложным.
С помощью оператора until команды command1, command2 и т.д. будут выполняться пока условие не станет истинным.
Оператор for обеспечивает выполнение цикла столько раз, сколько слов в списке. При этом переменная var последовательно принимает значения, равные словам из списка. Список может формироваться различными способами, например, как вывод некоторой команды.
Shell файл или командный файл или скрипт можно создать и выполнить несколькими способами, например с помощью команды cat
cat > text.sh
далее нужно записать команды файла, нажав в конце каждой строчки клавишу «ENTER», а затем Ctrl-D, чтобы закончить текст.
Можно создать скрипт с помощью текстового редактора
$VI text.sh
Созданный командный файл можно вызвать на выполнение как процедуру командного интерпретатора, командой sh с аргументом – именем скрипта.
$ sh text.sh
Команда sh вызовет файл и выполнит его команды.
Этот скрипт можно выполнить иначе: нужно объявить его выполняемым с помощью команды изменения прав доступа chmod:
$ chmod u+x text.sh
Теперь можно выполнить команды файла text.sh как обычную программу:
$ text.sh
еще один вариант – начать текст скрипта со строки:
#!/bin/sh.
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!