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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

{ # Другими словами - является ли строка целым числом.

[ $# -eq 1 ] || return $FAILURE

case $1 in

*[!0-9]*|"") return $FAILURE;;

*) return $SUCCESS;;

esac

}

check_var () # Интерфейс к isalpha

{

if isalpha "$@"

then

echo "\"$*\" начинается с алфавитного символа."

if isalpha2 "$@"

then # Дальнейшая проверка не имеет смысла, если первй символ не буква.

echo "\"$*\" содержит только алфавитные символы."

else

echo "\"$*\" содержит по меньшей мере один не алфавитный символ."

fi

else

echo "\"$*\" начинсется с не алфавитного символа ."

# Если функция вызвана без входного параметра,

#+ то считается, что строка содержит "не алфавитной" символ.

fi

echo

}

digit_check () # Интерфейс к isdigit ().

{

if isdigit "$@"

then

echo "\"$*\" содержит только цифры [0 - 9]."

else

echo "\"$*\" содержит по меньшей мере один не цифровой символ."

fi

echo

}

a=23skidoo

b=H3llo

c=-What?

d=What?

e=`echo $b` # Подстановка команды.

f=AbcDef

g=27234

h=27a34

i=27.34

check_var $a

check_var $b

check_var $c

check_var $d

check_var $e

check_var $f

check_var # Вызов без параметра, что произойдет?

#

digit_check $g

digit_check $h

digit_check $i

exit 0 # Сценарий дополнен S.C.

# Упражнение:

# --------

# Напишите функцию 'isfloat ()', которая проверяла бы вещественные числа.

# Подсказка: Эта функция подобна функции 'isdigit ()',

#+ надо лишь добавить анализ наличия десятичной точки.

select

Оператор selectбыл заимствован из Korn Shell, и является еще одним инструментом, используемым при создании меню.

select variable [in list ] do command ... break done

Этот оператор предлагает пользователю выбрать один из представленных вариантов. Примечательно, что selectпо-умолчанию использует в качестве приглашения к вводу (prompt) -- PS3 ( #? ), который легко изменить.

Пример 10-29. Создание меню с помощью select

#!/bin/bash

PS3='Выберите ваш любимый овощ: ' # строка приглашения к вводу (prompt)

echo

select vegetable in "бобы" "морковь" "картофель" "лук" "брюква"

do

echo

echo "Вы предпочитаете $vegetable."

echo ";-))"

echo

break # если 'break' убрать, то получится бесконечный цикл.

done

exit 0

Если в операторе selectсписок in list не задан, то в качестве списка будет использоваться список аргументов ( $@ ), передаваемый сценарию или функции.

Сравните это с поведением оператора цикла

for variable [in list ]

в котором не задан список аргументов.

Пример 10-30. Создание меню с помощью select в функции

#!/bin/bash

PS3='Выберите ваш любимый овощ: '

echo

choice_of()

{

select vegetable

# список выбора [in list] отсутствует, поэтому 'select' использует входные аргументы функции.

do

echo

echo "Вы предпочитаете $vegetable."

echo ";-))"

echo

break

done

}

choice_of бобы рис морковь редис томат шпинат

# $1 $2 $3 $4 $5 $6

# передача списка выбора в функцию choice_of()

exit 0

См. так же Пример 34-3.

Глава 11. Внутренние команды

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

Действие, когда какая либо команда или сама командная оболочка инициирует ( порождает ) новый подпроцесс, что бы выполнить какую либо работу, называется ветвлением ( forking ) процесса. Новый процесс называется "дочерним" (или "потомком"), а породивший его процесс -- "родительским" (или "предком"). В результате и потомок и предок продолжают исполняться одновременно -- параллельно друг другу.

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

Внутренние команды могут иметь внешние аналоги. Например, внутренняя команда Bash -- echoимеет внешний аналог /bin/echo и их поведение практически идентично.

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

Интервал:

Закладка:

Сделать

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

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


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

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

x