Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Linux all на 100% - Маслаков В.

Маслаков В. Linux all на 100% — Питер , 2009. — 331 c.
ISBN 978-5-388-00757-5
Скачать (прямая ссылка): linuxna1002009.pdf
Предыдущая << 1 .. 44 45 46 47 48 49 < 50 > 51 52 53 54 55 56 .. 116 >> Следующая

1-І NES Количес гпо строк на экране в текстовом режиме
OSTVHE Тип операционной системы
UJD Идентификатор текущего пользователя
USEE Имя текущего пользователя
Установить глобальную переменную можно, набрав в командной строке следующее выражение
имя переменной^ значение переменной
Параметры
Среди всех переменных особое место занимают переменные, обозначающие пара-мет ры. вводимые при запуске командного файла. Параметры в командных файлах применяются с той же целью, что и в программах. Каждый параметр имеет номер. Доступ к параметру осуществляется следующим образом:
ЇМ
Здесь Л номер параметра. Отсчет номеров ведется с нуля. Всегда существует нулевой параметр, равный имени командного файла, то есть $0 - имя командного файла, 21 первый параметр, $2 - второй параметр и т. д.
Параметры
В качестве примера напишем простой командный файл, который складывает два числа, введенных в качестве параметра. Для выполнения арифметической операции будем использовать уже знакомую вам команду ехрг.
#!/bin/bash а=‘ехрг $1 + $2’ echo "$1+$2=$а"
В данном случае $1 и §2 — это и есть переменные, которые содержат введенные параметры. Заодно протестируем программу.
vlad:~$ ./scripttest 23 42
23+42-65
Имя командного файла — scripttest.
Использованием параметров можно избежать выполнения команды export. При этом вы наделяете командный файл большей самостоятельностью. Переделаем рассмотренный выше пример с экспортом переменных так, чтобы вместо экспорта использовались параметры.
Файл scripttest:
#!/bin/bash var-''НеПо World'“
./subi “?var"
./sub2 ''?var''
Файл subi:
#!/bin/bash
echo "subi; var = $1”
Файл sub2:
#!/bin/bash
echo "sub2: var = $1”
Теперь, выполнив файл scripttest, получим схожий результат.
vlad:—$ ./scripttest
subi: var - Hello World! sub2: var - Hello World!
Глава 5. Основы shell-программирования
Может возникнуть вопрос, почему в файле script test при вызове командных файлов subi и sub2 имя переменной взято в кавычки. Если этого не сделать, то командные файлы будут вызваны таким образом:
subi не1lo World'
В таком случае интерпретатор команд решит, что пользователь хочет передать два параметра, первый из которых Не 11 о, а второй - Wor Id!. Можете проделать такую операцию из командной строки и убедиться, что все работает именно так. Когда вся фраза взята в кавычки, система считает ее единым параметром.
В некоторых случаях (например, при разборе параметров) может потребоваться сдвинуть все параметры таким образом, чтобы параметр, который находился под номером л, был доступен под номером п+1. За это отвечает команда shi ft.
shift [ количествопараметров]
При выполнении команды можно указать количество сдвигаемых параметров. Если значение не указано, количество устанавливается равным единице. На рис. 5.2 символически указаны и пронумерованы параметры, передаваемые командному файлу
1 2 3 4 5 6 7 8
Рис. 5-2. Параметры до выполнения операции shift
Теперь, после выполнения команды shift N, где N число, параметры расположатся так, как показано на рис. 5.3.
1 2 3 4 5
N
Рис. 5-3. Параметры после выполнения операции shift
Рассмотрим простой пример. В командном файле script test содержится такой алгоритм.
#!/Dm/bash
echo "\S3=$3 \$4=$4 \$5=$5"
Команда cead
shift
echo "\$3=$3 \S4=$4 \$5=$5"
Выполним эту команду с несколькими параметрами:
vlad:-$ ./scripttest 12345678
$3=3 $4-4 $5-5 $3=4 $4-5 $5=6
Особые переменные
Существуют также особые переменные, большинству из которых значение присво ить нельзя, но их значения зависят от некоторых событий, произошедших в системе или командной строке Рассмотрим эти переменные (табл. 5.4).
Таблица 5.4. Специальные переменные
Переменная Значение
$? Код, с которым завершила работу последняя программа
$$ Идентификатор оболочки
$! Идентификатор последнего фонового процесса
$0 Принимает значения всех параметров, исключая нулевой, которые разделены пробелом
$* Аналогично предыдущему
$# Принимает значение, равное количеству переданных командному файлу параметров, исключая нулевой
$RANDOM Содержит случайное число. Цепочку случайных чисе. 1 можно предопределить1, присвоив этой переменной некоторое значение
Команда read
Для написания полноценных сценариев пользователю нередко требуется ввести информацию с клавиатуры. За эту полезную возможность отвечает команда read.
1 Возможно, читателя это уди пит, но в компьютере не бывает по-настоящему лучайных чисел, а используются различные зависимости случайного числа от постоянно изменяю шихся в компьютере параметров (например, времени суток). В данном случае экспери ментально можно определить, что следующее значение переменной зависит от предыдущего.
Глава 5. Основы shell программирования
read [параметры] имя переменной! ...
-П N Читать не более N символов.
-р текст Вывести указанное сообщение без завершающего знака переноса. Это полезно, когла требуется указать пользователю, что именно нужно ввести
-S Не отображать на экране вводимые символы. Такой метод обычно применяется при запросе данных, которые не должны быть доступны сторонним пользователям, например паролей
Предыдущая << 1 .. 44 45 46 47 48 49 < 50 > 51 52 53 54 55 56 .. 116 >> Следующая