Главная » Просмотр файлов » Колисниченко Д.Н. - Linux-сервер своими руками

Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 101

Файл №1077324 Колисниченко Д.Н. - Linux-сервер своими руками (Колисниченко Д.Н. - Linux-сервер своими руками) 101 страницаКолисниченко Д.Н. - Linux-сервер своими руками (1077324) страница 1012018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 101)

Например, когда выприсваиваете переменной значение VAR=13, то это будет не числовое значение, а строка из двух символов. Если присваиваемое значение имеет пробелы, его нужно взять в кавычки:VAR="value 1"Присвоить значение переменной можно с помощью встроенной команды read:echo -n "Enter value: "read xecho $xПараметр -п команды echo не выводит символ новой строки в концесообщения «Enter value:», то есть не переводит строку.

Команда read читаетзначение, введенное пользователем с клавиатуры, и записывает его в переменную х. Последняя команда выводит только что введенное значение. Прииспользовании команды read можно указывать несколько переменных:read a b сПользователь должен ввести значения переменных, разделяя их пробелами. Для окончания ввода нужно нажать «Enter». Если введено меньшезначений, чем нужно, оставшимся переменным будет присвоена пустаястрока. А если больше, то лишние значения будут проигнорированы.Интерпретатор bash использует следующие метасимволы, имеющие длянего особое значение:* ? ; & ( ) | Л < > <возврат_каретки> <табуляция> <пробел>Для того, чтобы использовать эти символы как они есть, нужно ихцитировать с помощью символа \. Например, символ перевода строки можно цитировать как \п, символ табуляции как \t, а символ вопроса как \?Особое значение при присваивании переменным значений имеют кавычки.

Все символы, заключенные в одинарные кавычки ' ' представляютсамих себя. Между двойными кавычками " " выполняются команды иподстановки значений. Символы "\", ",", " ' ", " $ " могут цитироваться спомощью обратной наклонной черты: \\, \$, \'Для обозначения параметров командной строки используются специальные переменные, указанные в табл. 19.36.438Полезные команды и программы. Создание ПРМ-пакетовСпециальные переменныеНазваниепеременнойТаблица 19.36Значение$0Имя выполняемой команды.

Для сценария — путь, указанный при его вызове. Если вызнакомы с языком программирования Pascal, эта переменная должна вам напоминатьвызов функции ParamStr(O)$п (где п - номерпараметра, $1,$2, ...)Обращение к параметру с номеров п. Для Pascal — это вызов функции ParamStr(n)$#Число параметров, которые были указаны при вызове сценария. Аналогична вызовуфункции ParamCount в Pascal$'$@Все параметры, заключенные в кавычки: "$1 $2 ..."$?Код завершения последней команды$$Номер текущего процесса (PID)Номер (PID) последнего асинхронного процесса (команды, выполненной в фоновомрежиме)$!Все параметры, каждый из которых заключен в кавычки "$1" "$2" ...Пример.echo "Все параметры: "echo $*Интерпретатор bash поддерживает одномерные массивы с неограниченным числом элементов.

В других оболочках существуют определенные ограничения на массивы, например, в ksh максимальное число элементов массива ограничено 1024-мя элементами.Присвоить значение элементу массива можно с помощью такой конструкции:Имя_массива[индекс]=значениеНапример:А[1]=23А[3]=54А[0]=77Нумерация элементов начинается с ноля. Тип элементов массива, как итип переменных, текстовый. Присвоить значение элементам массива можнотакже с помощью инструкции set.

Например, выражение:set -A a r r a y 3 56 77 12аналогично выражениям:array[0]=3array[1]=56array[2]=77array[3]=12Вышеприведенные способы инициализации массивов могут применятьсякак в bash, так и в ksh, а также и в других оболочках. Но, тем не менее,•существует еще один способ, который работает только в bash:array = ( [ 0 ] = 3 [3]=12 [2]=77 [1]=5б)Обратиться к значению элемента можно следующим образом:${имя_массива[индекс]}439Полезные команды и программы. Создание ПРМ-пакетовНапример, вывести значение первого (нулевого) элемента массива можно так:echo { $ a r r a y [ 0 ] }Обратиться ко всем элементам массива сразу можно с помощью одногоиз выражений:${имя_массива[*]} или ${имя_массива[@]}Если значение хотя бы одного элемента массива может содержать пробелы, используйте второе выражение:echo $ { a r r a y [ @ ] }Особое значение имеют переменные окружения.

У каждого процессаесть своя среда — множество доступных ему переменных. Обыкновенныепеременные доступны только из локального процесса. Чтобы использоватьих значения в порождаемых процессах, нужно использовать встроеннуюкоманду export. После того, как вы экспортируете переменные, они будутдоступны всем порожденным процессам.Выражение export:export имяexport имя=значениеexport имя имя имя . . .export имя=значение имя имя=значение . . .Как видите, можно экспортировать уже инициализированную переменную (которой уже присвоено значение), а можно выполнить инициализациюпеременной непосредственно при экспорте.

Экспортировать можно как однупеременную, так и целый список.Для деактивизации переменной используется команда unset:unset имяКаждому процессу доступны переменные оболочки, приведенные в табл. 19.37.Таблица 19.37Переменные оболочкиНазваниепеременнойPWDUIDREPLYRANDOMSECONDSIPS (Internal FiledSeparator)HOMEPATHLOGNAMEMAILSHELLTERMЗначениеТекущий каталогИдентификатор пользователя, запустившего сценарийПоследняя строка, введенная с помощью команды readСлучайное число в диапазоне от 0 до 32767Число секунд, прошедшее с момента запуска оболочкиВнутренний разделитель полей. Используется синтаксическим анализатором и командой read для разделения строчки на слова.

По умолчанию его значение равно " \t\n",где: « » — пробел;«\t» — символ табуляции;,<\п» — символ новой строкиДомашний каталогПуть вызоваИмя пользователя, которое использовалось для входа в системуИмя файла, в который поступает электронная почтаИмя интерпретатора командТип терминала пользователяПример.echo "$НОМЕ"440Полезные команды и программы. Создание РРМ-пакетов19.7.5. Подстановка команд и арифметических выраженийВ гл. 13 (п. 13.5) мы уже сталкивались с подстановкой команд.

Тогдапеременной DT присваивался результат выполнения команды date:xDT=MateКак я уже писал, при подстановке команд нужно использовать обратныеодинарные кавычки (они расположены под символом тильды на клавиатуре). Подставлять можно не только одну команду, а целые списки команд:xЛUSERS= who I wd -1ЛUP='date; uptimeВ первом случае мы получим количество пользователей работающих всистеме, а во втором — последовательно записанные результаты выполнениякоманд date и uptime.Подставлять результаты выполнения можно не только в переменные, а ив другие команды, например:grep 'id -un' / e t c / p a s s w dДанная команда ищет в файле /etc/passwd вхождение результатавыполнения команды id -unПодстановка арифметических выражений осуществляется с помощьюконструкции$ ( ( выражение > )Например:А = $((e.cho $A(10+51/2 ))При этом на экране вы увидите число 7, а не 7.5, потому что используется целочисленное вычисление.

Пример. Количество часов, прошедшее смомента запуска оболочки:hrs = $ ( ( $SECONDS/3600 ) )19.7.6. Управляющие структуры и циклыК управляющим структурам относятся:» Конструкция if-fi.» Конструкция case-esac.Конструкцияif-fiОбщий синтаксис конструкции if-fi:ifсписок! thenсписок2e l i f списокЗ thenсписок4elseсписокЗfiКонструкция if-fi работает так же, как и в других языках программирования.

Если список! (условие) истинный, выполняется список!, иначе выпол441Полезные команды и программы. Создание RPM-пакетовняется списокЗ и проверяется его истинность и т.д. Допускается неограниченная вложенность операторов if. Например:if uuencode m y f i l e m y f i l e > m y f i l e . u u ; thenecho "Успешное конвертирование";elseecho "Ошибка";fiМожно использовать сокращенный вариант:if список! thenсписок2fiНапример:if [ $? -ne 0 ]; then echo "Ошибка. См. файл протокола"; fi;Вместо списка команд удобно использовать команду test или выражение[условие]. Например, следующие выражения аналогичны:test -e /etc.passwd[-е /etc/passwd]И первое, и второе выражение проверяют существование файла/etc/passwd.

Другие опции команды test представлены в табл. 19.38.Опции команды testОпция-d файл-е файл-f файл-k файл-L файл-г файл-s файл-х файл-w файл-о файл-z строка-п строкаТаблица 19.38Возвращаемое зничение и описаниеИстина, если файл существует и является каталогомИстина, если файл существуетИстина, если файл существует и является простым файломИстина, если файл существует и для него установлен бит односторонней операцииИстина, если файл существует и является ссылкойИстина, если файл существует и доступен для чтенияИстина, если файл существует и его размер больше 0Истина, если файл существует и является исполнимымИстина, если файл существует и доступен для записиИстина, если файл существует и принадлежит данному пользователюИстина, если длина строки равна 0Истина, если длина строки не равна 0Команда test, в случае успешного завершения, возвращает значениеистина, то есть 0 — успешное завершение. Если в скобках стоит непустоеслово, test возвратит тоже 0, например:[ word ] ; echo $?О[]; echo $?1В первом случае возвращается истина (true), на экран выводится ноль код удачного (безошибочного) завершения программы.

Во втором случае наэкран выводится единица — команда test возвратила значение ложь (false).Сравнение строк осуществляется следующим образом: выражения strl =str2 или strl = = str2 истинны, когда строки strl и str2 равны. Обратитевнимание: между двумя символами равно не должно быть пропуска!442Полезные команды и программы. Создание РРМ-пакетовСимвол ! инвертирует любое условие команды test, например, выражение strl != strl будет истинным, когда строки strl и str2 не равны междусобой. Символ ! является символом логической операции NOT (отрицание).Кроме этого символа, можно использовать опции команды -о и -а, которыеобозначают логические операции ИЛИ (OR) и И (AND). Например:str="word"; export str; ["$str" -a -f / e t c / p a s s w d ] ; echo $?0str=""; export str; ["$str" -a -f / e t c / p a s s w d ] ; echo $?1В первом случае непустая строка str возвращает истину, опция —f возвращает также истину, потому что файл /etc/passwd существует всегда.Результат операции И: истина И истина = истина, поэтому на экране выувидите 0.Во втором случае пустая строка str возвратит ложь, а опция —f возвращает истину.

Результат операции И: ложь И истина = ложь. Если вы забылизаконы логики, освежите свои знания с помощью табл. 19.39.Логические операцииTrueTrueFalseANDTrueFalseТаблица 19.39FalseFalseFalseORTrueFalseTrueTrueTrueFalseTrueFalseXORTrueFalseTrueFalseTrueFalseTrueFalseОперация XOR — это исключающее ИЛИ. Данная операция не используется при создании сценариев с помощью интерпретатора bash.Для сравнения целых чисел используются опции команды test, приведенные в табл. 19.40.Сравнение целых чиселОпцияТаблица 19.40ОписаниеРавноНе равноМеньшеБольшеМеньше или равноБольше или равно-eq-пе-It-gt-le-geИнтерпретатор bash воспринимает строки, как целые числа.

Характеристики

Тип файла
PDF-файл
Размер
52,29 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6310
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее