- Фундаментальные основы Linux. Часть VI. Сценарии
- Глава 24. Дополнительная информация о сценариях
- Команда eval
- Оператор (( ))
- Команда let
- Оператор case
- Функции сценариев командной оболочки
- Практическое задание: дополнительная информация о сценариях
- Корректная процедура выполнения практического задания: дополнительная информация о сценариях
- let command in Linux with Examples
- Глава 11. Внутренние команды
- 11.1. Команды управления заданиями
- Примечания
Фундаментальные основы Linux. Часть VI. Сценарии
Глава 24. Дополнительная информация о сценариях
Команда eval
Оператор (( ))
Команда let
Оператор case
Функции сценариев командной оболочки
Практическое задание: дополнительная информация о сценариях
2. Доработайте созданный сценарий таким образом, чтобы он осуществлял проверку нахождения чисел в диапазоне между 1 и 100 и завершал работу с выводом сообщения об ошибке при необходимости.
3. Доработайте созданный сценарий таким образом, чтобы при равенстве суммы и произведения чисел выводилось поздравление для пользователя.
4. На основе использующего конструкцию case и рассмотренного в главе сценария, разработайте сценарий, не учитывающий регистр символов строк, воспользовавшись для этого параметром shopt nocasematch. Значение параметра nocasematch должно сбрасываться к установленному перед запуском сценария значению.
5. Если позволяет время (или вы ожидаете, пока остальные студенты закончат выполнение данного практического задания), рассмотрите системные сценарии Linux из директорий /etc/init.d и /etc/rc.d и попытайтесь понять их. В кокой точке начинается исполнение сценария /etc/init.d/samba? Некоторые скрытые файлы сценариев также находятся в директории
, но о них мы поговорим позднее.
Корректная процедура выполнения практического задания: дополнительная информация о сценариях
2. Доработайте созданный сценарий таким образом, чтобы он осуществлял проверку нахождения чисел в диапазоне между 1 и 100 и завершал работу с выводом сообщения об ошибке при необходимости.
3. Доработайте созданный сценарий таким образом, чтобы при равенстве суммы и произведения чисел выводилось поздравление для пользователя.
4. На основе использующего конструкцию case и рассмотренного в главе сценария, разработайте сценарий, не учитывающий регистр символов строк, воспользовавшись для этого параметром shopt nocasematch. Значение параметра nocasematch должно сбрасываться к установленному перед запуском сценария значению.
Источник
let command in Linux with Examples
The let command is used to evaluate arithmetic expressions on shell variables.
Syntax:
Options:
- Basic arithmetic operators : The addition(+), subtraction(-), multiplication(*), division(/) and modulus(%) operators can be used in the expression with the let command.
Example:
- Post-increment(var++) / Post-decrement(var–) operator : This operator is used to interpret the integer value then increase/decrease the integer variable by 1.
Example:
In the above example, myvar2 gets the value of myvar2 before the increment occurs.
Pre-increment(++var) / Pre-decrement(–var) operator : This operator increases/decreases the integer value by 1 and then interpret the integer variable.
Example:
In the above example, the change in value occurs first then the value gets stored in myvar2.
Unary plus(+exp) / Unary minus(-exp) : This operator is used to multiply a given expression by 1 or -1.
Example:
In the above example, The value of myvar changes from positive to negative with unary minus operator.
Bit-wise negation(
) : This operator is used to negate every bit of the integer value i.e., turns 0 to 1 and 1 to 0.
Example:
In the above example, The value myvar is ‘0000…00’ in binary while the negation is ‘1111…11’ which is the 2’s complement value of -1.
Exponent(**) operator : This operator is used to raise one quantity to the power of another.
Example:
- Bitwise shift left / Bitwise shift right : This operator is used to shift the order of the bits either to the left or right.
Example:
- Bitwise AND operator : This operator does a bitwise comparison between two bits and returns 1 if both are 1 else returns 0.
Example:
- Bitwise OR operator : This operator does a bitwise comparison between two bits and returns 1 if atleast one the bits is 1, else returns 0.
Example:
- Bitwise XOR operator : This operator does a bitwise comparison between two bits and returns 0 if they are alike, else returns 1.
Example:
Источник
Глава 11. Внутренние команды
Внутренняя команда — это команда, которая встроена непосредственно в Bash. Команды делаются встроенными либо из соображений производительности — встроенные команды исполняются быстрее, чем внешние, которые, как правило, запускаются в дочернем процессе, либо из-за необходимости прямого доступа к внутренним структурам командного интерпретатора.
Действие, когда какая либо команда или сама командная оболочка инициирует ( порождает ) новый подпроцесс, что бы выполнить какую либо работу, называется ветвлением ( forking ) процесса. Новый процесс называется «дочерним» (или «потомком»), а породивший его процесс — «родительским» (или «предком»). В результате и потомок и предок продолжают исполняться одновременно — параллельно друг другу.
В общем случае, встроенные команды Bash, при исполнении внутри сценария, не порождают новый подпроцесс, в то время как вызов внешних команд, как правило, приводит к созданию нового подпроцесса.
Внутренние команды могут иметь внешние аналоги. Например, внутренняя команда Bash — echo имеет внешний аналог /bin/echo и их поведение практически идентично.
Ключевое слово (keyword) — это зарезервированное слово, синтаксический элемент (token) или оператор. Ключевые слова имеют специальное назначение для командного интерпретатора, и фактически являются элементами синтаксиса языка командной оболочки. В качестве примера можно привести » for » , » while » , «do» , » ! » , которые являются ключевыми (или зарезервированными) словами. Подобно встроенным командам , ключевые слова жестко зашиты в Bash, но в отличие от встроенных команд, ключевые слова не являются командами как таковыми, хотя при этом могут являться их составной частью. [1]
Ввод/вывод
выводит (на stdout) выражение или содержимое переменной (см. Пример 4-1).
Для вывода экранированных символов, echo требует наличие ключа -e. См. Пример 5-2.
Обычно, командв echo выводит в конце символ перевода строки. Подавить вывод это символа можно ключом -n.
Опциям (ключам), передаваемым в сценарий из командной строки, должен предшествовать символ «минус» ( —) или «плюс» ( +). Этот префикс ( — или +) позволяет getopts отличать опции (ключи) от прочих аргументов. Фактически, getopts не будет обрабатывать аргументы, если им не предшествует символ — или +, выделение опций будет прекращено как только встретится первый аргумент. Типичная конструкция цикла while с getopts несколько отличается от стандартной из-за отсутствия квадратных скобок, проверяющих условие продолжения цикла. Пример getopts, заменившей устаревшую, и не такую мощную, внешнюю команду getopt. Пример 11-17. Прием опций/аргументов, передаваемых сценарию, с помощью getopts Управление сценарием Когда эта команда вызывается из командной строки, то это приводит к запуску указанного сценария. Внутри сценария, команда source file-name загружает файл file-name. Таким образом она очень напоминает директиву препроцессора языка C/C++ — «#include». Может найти применение в ситуациях, когда несколько сценариев пользуются одним файлом с данными или библиотекой функций. Пример 11-18. «Подключение» внешнего файла Файл data-file для Пример 11-18, представленного выше, должен находиться в том же каталоге. Сценарий может подключить даже самого себя, только этому едва ли можно найти какое либо практическое применение. Пример 11-19. Пример (бесполезный) сценария, который подключает себя самого. Безусловное завершение работы сценария. Команде exit можно передать целое число, которое будет возвращено вызывающему процессу как код завершения. Вообще, считается хорошей практикой завершать работу сценария, за исключением простейших случаев, командой exit 0, чтобы проинформировать родительский процесс об успешном завершении.
ПримечанияИсключение из правил — команда time, которая в официальной документации к Bash называется ключевым словом. Опция — это аргумент, который управляет поведением сценария и может быть либо включен, либо выключен. Аргумент, который объединяет в себе несколько опций (ключей), определяет поведение сценария в соответствии с отдельными опциями, объединенными в данном аргументе.. Как правило, исходные тексты подобных библиотек, на языке C, располагаются в каталоге /usr/share/doc/bash-. /functions. Обратите внимание: ключ -f команды enable может отсутствовать в некоторых системах. Тот же эффект можно получить с помощью typeset -fu. Источник |