русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Позиционные параметры (переменные)


Дата добавления: 2013-12-23; просмотров: 1294; Нарушение авторских прав


Переменные Shell

Командная подстановка

Любая командная строка может быть помещена внутрь обратных кавычек (`....`), в результате чего вывод этой командной строки заменит при выполнении саму эту строку. Это называется командная подстановка. Команда или команды, заключенные в обратные кавычки, обрабатываются Shell в первую очередь и их вывод заменяет сами эти команды и обратные кавычки. Это свойство часто используется для присвоения значений переменным Shell. (Переменные Shell рассматриваются в следующем разделе.)

Например:

today=`date`

присваивает строку со значением текущей даты переменной today (например "Tue Nov 26 16:01:09 EST 1985"). Следующая команда сохраняет число зарегистрированных в системе пользователей в переменной users:

users=`who | wc -l`

Любая команда, которая пишет в стандартный вывод, может быть заключена в обратные кавычки. Обратные кавычки могут быть вложены одни в другие, но при этом внутренние должны отделяться обратными косыми чертами (\), например:

logmsg=`echo Your login directory is \`pwd\``

покажет строку "Your login directory is .(имя вашего каталога)". Переменным Shell также можно присваивать значения, используя команды read и line. Команда read считывает строку из стандартного ввода (обычно с терминала) и присваивает отдельные слова всем указанным переменным.

Например, предположим, что команда:

read first init last

прочитала строку вида:

G. A. Snyder

Тогда указанным переменным будут присвоены значения:

first=G. init=A. last=Snyder

Все "лишние" прочитанные слова команда read присваивает последней переменной.

Команда line считывает строку из стандартного ввода и повторяет в стандартном выводе.

 

В Shell имеется несколько способов создания переменных. Переменная - это имя, которому присвоено текстовое значение. Некоторые переменные являются позиционными параметрами - их значения устанавливаются только в командной строке. Остальные переменные - это просто имена, которым пользователь или сам интерпретатор присвоил текстовые значения.



 

В среде Shell, из 128 существующих позиционных переменных доступны по именам только 10, это $0, $1, $2, ….,$9. Все остальные расположены в стеке и доступны только после специальной манипуляции, причем действе не имеет обратной силы.

Когда вызывается процедура Shell, то Shell сразу неявно создает позиционные параметры. Имя самой процедуры Shell - в нулевой позиции, в командной строке, присваивается позиционному параметру $0. Первый аргумент команды называется $1 и т.д. Чтобы получить доступ к аргументам в позициях с номером больше 9, можно использовать команду shift. Например, следующую процедуру можно использовать для просмотра позиционных параметров и затем обрабатывать все необходимые файлы:

while test -n "$1"

do case $1 in

-a) A=aoption ; shift;;

-b) B=boption ; shift;;

-c) C=coption ; shift;;

-*) echo "bad option" ; exit 1 ;;

*) process rest of files

esac

done

Пользователь может явно передать необходимые значения этим позиционным параметрам с помощью команды set. Например, команда:

set abc def ghi

присваивает значение "abc" первому позиционному параметру $1, значение "def" - второму $2 и "ghi" - третьему $3. Нулевой позиционный параметр $0 нельзя переопределить таким способом - он всегда относится к имени процедуры Shell.

 



<== предыдущая лекция | следующая лекция ==>
Командные строки и конвейеры | Переменные, определяемые пользователем


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.