русс | укр

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

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

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

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


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

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


Дата добавления: 2015-07-09; просмотров: 1619; Нарушение авторских прав


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

В Bash имеется десять позиционных параметров: $0, $1, ..., $9. Они содержат:

r $0 — имя команды;

r параметры от $1 до $9 — значения девяти аргументов командной строки.

 



Пример 10.15. Позиционные параметры

 



$ cat param.sh

#!/bin/bash echo $1 echo $2

$ ./param.sh first second first

second

 



В сценарии param.sh (пример 10.15) содержатся две команды echo, выводя- щие содержимое первого и второго позиционных параметров, которое соот- ветствует первому и второму аргументу командной строки.

Кроме позиционных параметров в Bash используются специальные параметры:

r $* — строка, составленная из значений всех аргументов командной строки;

r $@ — содержит строку, составленную из значений всех аргументов команд- ной строки, разделенных пробелами (аналогично, но не тождественно $*);


 

r $# — количество аргументов командной строки;

r $? — код возврата предыдущей команды;

r $$ — PID оболочки.

В примере 10.16 сценарий выводит все аргументы командной строки.

 



Пример 10.16. Параметр $*

 



$ cat comline.sh

#!/bin/bash echo $*

 



$ ./comline.sh 11 aa 22 bbb

11 aa 22 bbb

 



Позиционные параметры не позволяют устанавливать их значения, т. к. их значения назначаются автоматически оболочкой.

При необходимости получить значения аргументов (опций) командной стро- ки, содержащей более девяти аргументов, используют команду shift. Ко- манда shift, вызванная без аргументов, сдвигает позиционные параметры вправо (пример 10.17). То есть $1 получит значение, которое имел $2, пара- метр $2 — значение $3 и т. д.

 



Пример 10.17. Команда shift

 



$ cat param.sh

#!/bin/bash echo $1 echo $2

echo And now all parameters are shifted. shift

echo $1 echo $2

 



$ ./param.sh first second third first

second

And now all parameters are shifted. second

third


 

В этом сценарии (пример 10.17) сначала выводятся аргументы командной строки без сдвига. То есть выводятся первый и второй аргументы командной строки, а после использования команды shift — второй и третий, хотя ис- пользованы все те же позиционные параметры $1 и $2.

Для сдвига более чем на одну позицию вправо необходимо указать величину сдвига, используя аргумент команды shift. Например, shift 4 сдвинет па- раметры на четыре позиции вправо.

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

При необходимости назначить новые значения позиционным параметрам те- кущей оболочки можно воспользоваться командой set, которая позволяет сконструировать командную строку заново, назначая новые значения сразу всем позиционным параметрам (пример 10.18).

 



Пример 10.18. Установка аргументов с помощью set

 



$ cat param.sh

#!/bin/bash echo $1 echo $2

set 1 2 echo $1 echo $2

 



$ ./param.sh first second first

second 1

 



Здесь продемонстрировано, что изменение всех аргументов командой set

приводит к изменению позиционных параметров.

При необходимости сохранить значение одного или нескольких позицион- ных параметров следует использовать команду set, указав в требуемых по- зициях позиционные параметры, не подлежащие изменению (пример 10.19).


 

Пример 10.19. Сохранение значений позиционных параметров при вызове set

 



set $1 $2 newarg $4

 



В этом случае (см. пример 10.19) командная строка текущей оболочки со- держит только четыре аргумента. Команда set изменяет все их сразу, а для сохранения значений первому, второму и четвертому аргументам просто присваиваются их же старые значения. Третий аргумент получает здесь но- вое значение — newarg.



<== предыдущая лекция | следующая лекция ==>
Интерактивная установка значений переменных | ЗАДАНИЯ


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


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

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

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


 


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

 
 

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

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