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

Здесь есть возможность читать онлайн «Мендель Купер - Искусство программирования на языке сценариев командной оболочки» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Искусство программирования на языке сценариев командной оболочки»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Искусство программирования на языке сценариев командной оболочки», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

ключи инструкций declare/typeset

-r readonly (только для чтения)

declare -r var1

( declare -r var1аналогично объявлению readonly var1)

Это грубый эквивалент констант (const) в языке C. Попытка изменения таких переменных завершается сообщением об ошибке.

-i integer

declare -i number

# Сценарий интерпретирует переменную "number" как целое число.

number=3

echo "number = $number" # number = 3

number=three

echo "number = $number" # number = 0

# Строка "three" интерпретируется как целое число.

Примечательно, что допускается выполнение некоторых арифметических операций над переменными, объявленными как integer, не прибегая к инструкциям expr или let.

-a array

declare -a indices

Переменная indices объявляется массивом.

-f functions

declare -f

Инструкция declare -f, без аргументов, приводит к выводу списка ранее объявленных функций в сценарии.

declare -f function_name

Инструкция declare -f function_nameвыводит имя функции function_name, если она была объявлена ранее.

-x export

declare -x var3

Эта инструкция объявляет переменную, как доступную для экспорта.

var=$value

declare -x var3=373

Инструкция declareдопускает совмещение объявления и присваивания значения переменной одновременно.

Пример 9-20. Объявление переменных с помощью инструкции declare

#!/bin/bash

func1 ()

{

echo Это функция.

}

declare -f # Список функций, объявленных выше.

echo

declare -i var1 # var1 -- целочисленная переменная.

var1=2367

echo "переменная var1 объявлена как $var1"

var1=var1+1 # Допустимая арифметическая операция над целочисленными переменными.

echo "переменная var1 увеличена на 1 = $var1."

# Допустимая операция для целочисленных переменных

echo "Возможно ли записать дробное число 2367.1 в var1?"

var1=2367.1 # Сообщение об ошибке, переменная не изменяется.

echo "значение переменной var1 осталось прежним = $var1"

echo

declare -r var2=13.36 # инструкция 'declare' допускает установку свойств переменной

#+ и одновременно присваивать значение.

echo "var2 declared as $var2" # Допускается ли изменять значение readonly переменных?

var2=13.37 # Сообщение об ошибке и завершение работы сценария.

echo "значение переменной var2 осталось прежним $var2" # Эта строка никогда не будет выполнена.

exit 0 # Сценарий завершит работу выше.

9.5. Косвенные ссылки на переменные

Предположим, что значение одной переменной -- есть имя второй переменной. Возможно ли получить значение второй переменной через обращение к первой? Например, Пусть a=letter_of_alphabet и letter_of_alphabet=z , тогда вопрос будет звучать так: "Возможно ли получить значение z , обратившись к переменной a ?". В действительности это возможно и это называется косвенной ссылкой . Для этого необходимо прибегнуть к несколько необычной нотации eval var1=\$$var2 .

Пример 9-21. Косвенные ссылки

#!/bin/bash

# Косвенные ссылки на переменные.

a=letter_of_alphabet

letter_of_alphabet=z

echo

# Прямое обращение к переменной.

echo "a = $a"

# Косвенное обращение к переменной.

eval a=\$$a

echo "А теперь a = $a"

echo

# Теперь попробуем изменить переменную, на которую делается ссылка.

t=table_cell_3

table_cell_3=24

echo "\"table_cell_3\" = $table_cell_3"

echo -n "разыменование (получение ссылки) \"t\" = "; eval echo \$$t

# В данном, простом, случае,

# eval t=\$$t; echo "\"t\" = $t"

# дает тот же результат (почему?).

echo

t=table_cell_3

NEW_VAL=387

table_cell_3=$NEW_VAL

echo "Значение переменной \"table_cell_3\" изменено на $NEW_VAL."

echo "Теперь \"table_cell_3\" = $table_cell_3"

echo -n "разыменование (получение ссылки) \"t\" = "; eval echo \$$t

# инструкция "eval" принимает два аргумента "echo" и "\$$t" (назначает равным $table_cell_3)

echo

# (Спасибо S.C. за разъяснения.)

# Еще один способ -- нотация ${!t}, будет обсуждаться в разделе "Bash, версия 2".

# Так же, см. пример "ex78.sh".

exit 0

Пример 9-22. Передача косвенных ссылок в awk

#!/bin/bash

# Другая версия сценария "column totaler"

# который суммирует заданную колонку (чисел) в заданном файле.

# Здесь используются косвенные ссылки.

ARGS=2

E_WRONGARGS=65

if [ $# -ne "$ARGS" ] # Проверка количества входных аргументов.

then

echo "Порядок использования: `basename $0` filename column-number"

exit $E_WRONGARGS

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Искусство программирования на языке сценариев командной оболочки» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Искусство программирования на языке сценариев командной оболочки» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x