Использование арифметических операторов в сценариях Bash

Теперь давайте обсудим каждый Оператор один за другим.

Команды, синтаксис и примеры

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

Пример передачи аргументов в скрипте Bash

Скажем, у вас есть скрипт , который считает слова в файле. Если вы хотите использовать этот сценарий для многих файлов, лучше передать имя файла в качестве аргумента, чтобы один и тот же сценарий можно было использовать для всех файлов, которые будут обрабатываться. Например, если имя файла для обработки – список песен, введите в командной строке следующее:

sh список песен

Доступ к аргументам осуществляется внутри скрипта с использованием переменных $ 1 , $ 2 , $ 3 и т. Д. Переменная $ 1 ссылается на первый аргумент, $ 2 – на второй аргумент, а $ 3 – на третий аргумент. Это иллюстрируется в следующем примере:

FILE1 = $ 1 wc $ FILE1

Для удобства чтения назначьте переменную с описательным именем значению первого аргумента ( $ 1 ), а затем вызовите утилиту подсчета слов (wc) для переменной $ FILE1 ,

Если у вас есть переменное число аргументов, используйте переменную $ @ , которая является массивом всех входных параметров. Это использует цикл for для итеративной обработки каждого из них, как показано в следующем примере:

для FILE1 в «$ @» do wc $ FILE1 сделано

Вот пример того, как вызвать этот скрипт с аргументами из командной строки:

sh songlist1 songlist2 songlist3

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

sh ‘songlist 1’ ‘songlist 2’ ‘songlist 3’

Флаги Метод

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

Читайте также:  Как заработать в Твиттер: 6 способов заработка

Например, вы хотите написать скрипт, который извлекает информацию из базы данных на основе указанных параметров, таких как имя пользователя , дата и product , и генерирует отчет в указанном формате. Сценарий должен быть написан таким образом, чтобы эти параметры передавались при вызове сценария. Это может выглядеть так:

makereport -u jsmith -p notebooks -d 10-20-2011 -f pdf

Bash включает эту функцию с помощью функции getopts. Для приведенного выше примера используйте getopts следующим образом:

, пока getopts u: d: p: f: option do case «$ {option}» in u) USER = $ {OPTARG} ;; < br /> d) DATE = $ {OPTARG} ;; p) PRODUCT = $ {OPTARG} ;; f) FORMAT = $ OPTARG ;; esac выполнено < br />

Это цикл while, который использует функцию getopts и так называемую строку опций – в данном случае u: d: p: f: – для итерации аргументов. Цикл while проходит по строке optstring, которая содержит флаги, используемые для передачи аргументов, и присваивает значение аргумента, предоставленное для этого флага, переменной option . Затем оператор CASE присваивает значение переменной option глобальной переменной, которая используется после прочтения всех аргументов.

Значения для двоеточий

Двоеточие в строке опций означает, что значения необходимы для соответствующих флагов. В приведенном выше примере u: d: p: f: за всеми флагами следует двоеточие. Это означает, что все флаги нуждаются в значении. Если, например, флаги d и f , как ожидается, не будут иметь значения, строкой опций будет u: dp: f .

Двоеточие в начале строки опций (например, : u: d: p: f: ) имеет совершенно другое значение. Он обрабатывает флаги, которые не представлены в строке optstring. В этом случае значение переменной option установлено в ? и значение OPTARG устанавливается на неожиданный флаг. Это отображает подходящее сообщение об ошибке, информирующее вас об ошибке.

Аргументы, которым не предшествует флаг, игнорируются getopts. Если флаги, указанные в строке опций, не предоставляются при вызове скрипта, то ничего не происходит, если вы специально не обработаете этот случай в своем коде. Любые аргументы, не обрабатываемые getops, могут по-прежнему регистрироваться с помощью обычных переменных $ 1 , $ 2 и $ 3 .

Читайте также:  10 лучших сред разработки (IDE) для Linux

Бинарные арифметические операторы

Бинарные операторы — это операторы, которые применяются к двум операндам (слева и справа). Существует 5 бинарных операторов.

Оператор Символ Пример Операция
Сложение + x + y x плюс y
Вычитание x − y x минус y
Умножение * x * y x умножить на y
Деление / x / y x разделить на y
Деление с остатком % x % y Остаток от деления x на y

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

Возвращаем значения

В отличие от функций на “реальных” языках программирования, функции в Bash не позволяют возвращать значение при вызове. Когда функция bash завершается, ее возвращаемое значение — это значение последнего оператора: 0 — успех, а ненулевое десятичное число в диапазоне от 1 до 255 включительно — для описания сбоя.

Статус возврата значения можно указать с помощью ключевого слова return и оно присваивается переменной $?. Оператор return завершает работу функции. Вы можете думать об этом как о способе выхода из функции.

#!/bin/bash my_function () { echo «наш результат» return 13 } my_function echo $?

Вывод консоли: наш результат 13

Как же, все-таки, вернуть значение из функции? Нам нужно использовать для этого небольшую хитрость — можно присвоить результат функции глобальной переменной:

#!/bin/bash my_function () { func_result=»наш результат» } my_function echo $func_result

После выполнения этого кода, вы должны увидеть строку на экране:

наш результат

Другой, подходящий вариант для возврата значения из функции — отправить значение в stdout с помощью echo или printf, как показано ниже:

#!/bin/bash my_function () { local func_result=»это тест» echo «$func_result» } func_result=»$(my_function)» echo $func_result

Результат выполнения будет таким же.

Вместо того, чтобы просто выполнять функцию, которая будет печатать сообщение в stdout, мы присваиваем результат переменной func_result с помощью механизма $ (). Используя этот метод, глобальная переменная func_result будет содержать результат функции.

Основные команды PowerShell

Существует много команд PowerShell, и очень трудно ввести все эти команды в этом учебном пособии. Мы сосредоточимся на некоторых из наиболее важных, а также основных команд PowerShell.

Читайте также:  71 команда Linux на все случаи жизни. Ну почти

Первый шаг — перейти к команде Get-Help, которая объясняет, как дать команду и ее параметр.

Чтобы получить список обновлений —

  • Get-HotFix и установить исправление следующим образом
  • Get-HotFix -id kb2741530

Powershell — командлеты

Командлет или «Команда let» — это облегченная команда, используемая в среде Windows PowerShell. Среда выполнения Windows PowerShell вызывает эти командлеты из командной строки. Вы можете создавать и вызывать их программно через API Windows PowerShell.

Библиотека (модуль) math

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

Для работы с данным модулем его предварительно нужно импортировать.

>>> import math

Рассмотрим наиболее часто используемые функции.

(x)

Возвращает ближайшее целое число большее, чем x.

>>> (3.2) 4

(x)

Возвращает абсолютное значение числа.

>>> (7) 7.

(x)

Вычисляет факториал x.

>>> (5) 120

(x)

Возвращает ближайшее целое число меньшее, чем x.

>>> (3.2) 3

(x)

Вычисляет e**x.

>>> (3) 8

(x)

Логарифм по основанию 2.

(x)

Логарифм по основанию 10.

(x[, base])

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

>>> (8) 3. >>> (1000) 3. >>> (5) 3 >>> (4, 8) 7

(x, y)

Вычисляет значение x в степени y.

>>> (3, 4) 81.

(x)

Корень квадратный от x.

>>> (25) 5.

Тригонометрические функции, их мы оставим без примера.

(x)

(x)

(x)

(x)

(x)

(x)

И напоследок пару констант.

Число пи.

math.e

Число е.

Помимо перечисленных, модуль math содержит ещё много различных функций, за более подробной информацией можете обратиться на официальный сайт.