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

Тут можно читать онлайн Мендель Купер - Искусство программирования на языке сценариев командной оболочки - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Искусство программирования на языке сценариев командной оболочки
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3.7/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

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

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

Интервал:

Закладка:

Сделать

#!/bin/bash

# printf demo

# От переводчика:

# Считаю своим долгом напомнить, что в качестве разделителя дробной и целой

# частей в вещественных числах, может использоваться символ "запятая"

# (в русских локалях), поэтому данный сценарий может выдавать сообщение

# об ошибке (у меня так и произошло) при выводе числа PI.

# Тогда попробуйте заменить в определении числа PI десятичную точку

# на запятую -- это должно помочь. ;-)

PI=3,14159265358979

DecimalConstant=31373

Message1="Поздравляю,"

Message2="Землянин."

echo

printf "Число пи с точностью до 2 знака после запятой = %1.2f" $PI

echo

printf "Число пи с точностью до 9 знака после запятой = %1.9f" $PI # Даже округляет правильно.

printf "\n" # Перевод строки,

printf "Константа = \t%d\n" $DecimalConstant # Вставлен символ табуляции (\t)

printf "%s %s \n" $Message1 $Message2

echo

# ==========================================#

# Эмуляция функции 'sprintf' в языке C.

# Запись форматированной строки в переменную.

echo

Pi12=$(printf "%1.12f" $PI)

echo "Число пи с точностью до 12 знака после запятой = $Pi12"

Msg=`printf "%s %s \n" $Message1 $Message2`

echo $Msg; echo $Msg

exit 0

Одно из полезных применений команды printf-- форматированный вывод сообщений об ошибках

E_BADDIR=65

var=nonexistent_directory

error()

{

printf "$@" >&2

# Форматированный вывод аргументов на stderr.

echo

exit $E_BADDIR

}

cd $var || error $"Невозможно перейти в каталог %s." "$var"

# Спасибо S.C.

read

"Читает" значение переменной с устройства стандартного ввода -- stdin , в интерактивном режиме это означает клавиатуру. Ключ -a позволяет записывать значения в массивы (см. Пример 25-3).

Пример 11-2. Ввод значений переменных с помощью read

#!/bin/bash

echo -n "дите значение переменной 'var1': "

# Ключ -n подавляет вывод символа перевода строки.

read var1

# Обратите внимание -- перед именем переменной отсутствует символ '$'.

echo "var1 = $var1"

echo

# Одной командой 'read' можно вводить несколько переменных.

echo -n "дите значения для переменных 'var2' и 'var3' (через пробел или табуляцию): "

read var2 var3

echo "var2 = $var2 var3 = $var3"

# Если было введено значение только одной переменной, то вторая останется "пустой".

exit 0

Если команде readне была передано ни одной переменной, то ввод будет осуществлен в переменную $REPLY.

Пример 11-3. Пример использования команды read без указания переменной для ввода

#!/bin/bash

echo

# -------------------------- #

# Первый блок кода.

echo -n "Введите значение: "

read var

echo "\"var\" = "$var""

# Здесь нет ничего неожиданного.

# -------------------------- #

echo

echo -n "Введите другое значение: "

read # Команда 'read' употребляется без указания переменной для ввода,

#+ тем не менее...

#+ По-умолчанию ввод осуществляется в переменную $REPLY.

var="$REPLY"

echo "\"var\" = "$var""

# Эта часть сценария эквивалентна первому блоку, выделенному выше.

echo

exit 0

Обычно, при вводе в окне терминала с помощью команды "read", символ \служит для экранирования символа перевода строки. Ключ -r заставляет интерпретировать символ \как обычный символ.

Пример 11-4. Ввод многострочного текста с помощью read

#!/bin/bash

echo

echo "Введите строку, завершающуюся символом \\, и нажмите ENTER."

echo "Затем введите вторую строку, и снова нажмите ENTER."

read var1 # При чтении, символ "\" экранирует перевод строки.

# первая строка \

# вторая строка

echo "var1 = $var1"

# var1 = первая строка вторая строка

# После ввода каждой строки, завершающейся символом "\",

# вы можете продолжать ввод на другой строке.

echo; echo

echo "Введите другую строку, завершающуюся символом \\, и нажмите ENTER."

read -r var2 # Ключ -r заставляет команду "read" воспринимать "\"

# как обычный символ.

# первая строка \

echo "var2 = $var2"

# var2 = первая строка \

# Ввод данных прекращается сразу же после первого нажатия на клавишу ENTER.

echo

exit 0

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

# Чтение данных, не дожидаясь нажатия на клавишу ENTER.

read -s -n1 -p "Нажмите клавишу " keypress

echo; echo "Была нажата клавиша "\"$keypress\""."

# -s -- подавляет эхо-вывод, т.е. ввод с клавиатуры не отображается на экране.

# -n N -- ввод завершается автоматически, сразу же после ввода N-го символа.

# -p -- задает вид строки подсказки - приглашения к вводу (prompt).

# Использование этих ключей немного осложняется тем, что они должны следовать в определенном порядке.

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

Пример 11-5. Обнаружение нажатия на курсорные клавиши

#!/bin/bash

# arrow-detect.sh: Обнаружение нажатия на курсорные клавиши, и не только...

# Спасибо Sandro Magi за то что показал мне -- как.

# --------------------------------------------

# Коды клавиш.

arrowup='\[A'

arrowdown='\[B'

arrowrt='\[C'

arrowleft='\[D'

insert='\[2'

delete='\[3'

# --------------------------------------------

SUCCESS=0

OTHER=65

echo -n "Нажмите на клавишу... "

# Может потребоваться нажать на ENTER, если была нажата клавиша

# не входящая в список выше.

read -n3 key # Прочитать 3 символа.

echo -n "$key" | grep "$arrowup" #Определение нажатой клавиши.

if [ "$?" -eq $SUCCESS ]

then

echo "Нажата клавиша \"."

exit $SUCCESS

fi

echo -n "$key" | grep "$arrowdown"

if [ "$?" -eq $SUCCESS ]

then

echo "Нажата клавиша \"

exit $SUCCESS

fi

echo -n "$key" | grep "$arrowrt"

if [ "$?" -eq $SUCCESS ]

then

echo "Нажата клавиша \"О\"."

exit $SUCCESS

fi

echo -n "$key" | grep "$arrowleft"

if [ "$?" -eq $SUCCESS ]

then

echo "Нажата клавиша \"."

exit $SUCCESS

fi

echo -n "$key" | grep "$insert"

if [ "$?" -eq $SUCCESS ]

then

echo "Нажата клавиша \"Insert\"."

exit $SUCCESS

fi

echo -n "$key" | grep "$delete"

if [ "$?" -eq $SUCCESS ]

then

echo "Нажата клавиша \"Delete\"."

exit $SUCCESS

fi

echo " Нажата какая-то другая клавиша."

exit $OTHER

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

# ---------

# 1) Упростите сценарий, заменив множество if-ов

#+ одной конструкцией 'case'.

# 2) Добавьте определение нажатий на клавиши "Home", "End", "PgUp" и "PgDn".

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

Интервал:

Закладка:

Сделать


Мендель Купер читать все книги автора по порядку

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




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


Отзывы читателей о книге Искусство программирования на языке сценариев командной оболочки, автор: Мендель Купер. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x