Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 1-8 / ОС_07.doc
Скачиваний:
93
Добавлен:
04.04.2013
Размер:
114.69 Кб
Скачать

4.3. Вывод содержимого переменных

Чтобы получить доступ к переменной, нужно непосредственно перед именем переменной поставить знак доллара ($):

%var=80

%echo $var

80

%

и еще пример:

%message="Hello"

%echo $message

Hello

%

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

%var=80

%echo The variable is $var

The variable is 80

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

%var=betta

%echo $betta

<Пустая строка>

%

Имя переменной можно заключить в фигурные скобки, тогда её выведенное значение будет сопровождаться символами, которые могут стоять за фигурными скобками.

%var="Glava"

%echo ${var}5

%Glava5

Использование переменных Shell. Переменные Shell удобно использовать в командах, например для сокращения длинного набора имени.

%file="/usr/export/lib/examples/memory.txt"

%cat $file

<Содержимое файла file>

Точно так же можно размещать в переменных Shell длинные имена каталогов:

%doc=/usr/export/lib/examples

и теперь можно быстро получить список файлов в этом каталоге:

%ls $doc

Еще пример:

определим переменную catalog, содержащую имя рабочего каталога:

%catalog=/new/home/dir/

Обратите внимание на символ '/' (слэш), завершающий имя каталога. Это позволяет выводить оглавление каталога и распечатывать содержимое файлов из этого каталога.

Вывод оглавление каталога:

%ls –l $catalog

<Оглавление каталога>

«Распечатка» файла:

%cat ${catalog}c.txt

Значение переменной Shell может быть присвоено другой его переменной:

%file=proba.txt

%save_file=$file

%echo $save_file

proba.txt

4.4. Специальные символы

4.4.1. Кавычки

Shell – уникальный язык по способу использования кавычек. Интерпретатор различает 4 символа, которые трактуются как кавычки:

  • двойные кавычки (");

  • апостроф (');

  • символ обратной наклонной черты (\);

  • обратный апостроф (`).

4.4.2. Двойные кавычки

Рассмотрим несколько примеров применения кавычек:

Пример_1: использование метасимвола в качестве аргумента команды

%echo *

proba.txt file1 doc

Здесь Shell заменит * на имена всех файлов в текущем каталоге.

Пример_2: метасимвол в кавычках

%echo "*"

*

В этом примере кавычки отменили специальное значение символа *.

Любой символ, который имеет специальное значение для Shell (* ? < > >>), заключенный в двойные кавычки, утрачивает свой специальный статус.

Пример_3: кавычки и обычные переменные

%message="Hello"

%echo $message

Hello

%echo "$message"

Hello

4.4.3. Апостроф

Когда переменная находится в апострофах, её значение НЕ подставляется в качестве результата.

%echo '$message'

$message

Сравните действие двойных и одинарных апострофов:

%var=Hello

%echo $var "$var" '$var'

Hello Hello $var

4.4.4. Обратные апострофы

Если некоторая команда заключена в обратные апострофы, Shell выполнит её и результаты поместит на то же место, где эта команда находится:

Пример_1:

%echo The date is `date`

The date is <дата>

Пример_2:

%echo Your current directory is `pwd`

Your current directory is /new/home/fomin

Пример_3:

%users=`who | wc –l`

%echo There are $users users logged in

There are 2 users logged in

4.6. Аргументы Shell-программы

Shell рассматривает командную строку следующим образом:

Командная строка состоит из «слов», разделенных пробелами. Первое слово интерпретируется как имя программы, остальные слова – это аргументы команды. Shell осуществляет поиск исполнимого файла (программы), имя которого совпадает с именем команды, вызывает его и передаёт ему все относящиеся к нему параметры.

Если исполнимый файл является Shell-процедурой (командным файлом), то интерпретатор будет просто читать файл и запускать из него команды.

В Shell-процедурах аргументы кодируются особым образом:

- первому аргументу соответствует переменная $1;

- второму - $2 и т.д. до $9.

Эти переменные называются позиционными т.к. их номера соответствуют номерам позиций аргументов. Обратите внимание на то, что всего существует 9 переменных, хранящих позиционные переменные. Как получить доступ к позиционным переменным, если их будет больше 9-ти, вы узнаете позже.

Соседние файлы в папке Лекции 1-8