Искусство программирования на языке сценариев командной оболочки


Программирование на языке сценариев командной оболочки - стр. 206


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

Вариации

Арифметические подстановки в обратных одиночных кавычках (часто используются совместно с командой expr)

z=`expr $z + 3` # Команда 'expr' вычисляет значение выражения.

Арифметические подстановки в двойных круглых скобках, и предложение let

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

z=$(($z+3)) # $((EXPRESSION)) -- это подстановка арифметического выражения. # Не путайте с #+ подстановкой команд.

let z=z+3 let "z += 3" # Кавычки позволяют вставляьб пробелы и специальные операторы. # Оператор 'let' вычисляет арифметическое выражение, #+ это не подстановка арифметического выражения.

Все вышеприведенные примеры эквивалентны. Вы можете использовать любую из этих форм записи "по своему вкусу".

Примеры арифметических подстановок в сценариях:

  1. Пример 12-6

  2. Пример 10-14

  3. Пример 25-1

  4. Пример 25-6

  5. Пример A-19

Глава 16. Перенаправление ввода/вывода

В системе по-умолчанию всегда открыты три "файла" -- stdin (клавиатура), stdout (экран) и stderr (вывод сообщений об ошибках на экран). Эти, и любые другие открытые файлы, могут быть перенапрвлены. В данном случае, термин "перенаправление" означает получить вывод из файла, команды, программы, сценария или даже отдельного блока в сценарии (см. Пример 3-1 и Пример 3-2) и передать его на вход в другой файл, команду, программу или сценарий.

С каждым открытым файлом связан дескриптор файла. [44] Дескрипторы файлов stdin, stdout и stderr -- 0, 1 и 2, соответственно. При открытии дополнительных файлов, дескрипторы с 3 по 9 остаются незанятыми. Иногда дополнительные дескрипторы могут сослужить неплохую службу, временно сохраняя в себе ссылку на stdin, stdout или stderr. [45] Это упрощает возврат дескрипторов в нормальное состояние после сложных манипуляций с перенаправлением и перестановками (см.


- Начало -  - Назад -  - Вперед -