My-library.info
Все категории

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

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Мендель Купер - Искусство программирования на языке сценариев командной оболочки. Жанр: Программирование издательство неизвестно, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Искусство программирования на языке сценариев командной оболочки
Издательство:
неизвестно
ISBN:
нет данных
Год:
неизвестен
Дата добавления:
17 сентябрь 2019
Количество просмотров:
276
Читать онлайн
Мендель Купер - Искусство программирования на языке сценариев командной оболочки

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

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

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

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

используемых совместно с echo и sed

n

перевод строки (новая строка)

r

перевод каретки

t

табуляция

v

вертикальная табуляция

b

забой (backspace)

a

"звонок" (сигнал)

xx

ASCII-символ с кодом 0xx в восьмеричном виде)

Пример 5-2. Экранированные символы

#!/bin/bash

# escaped.sh: экранированные символы


echo; echo


echo "vvvv" # Вывод последовательности символов vvvv.

# Для вывода экранированных символов следует использовать ключ -e.

echo "============="

echo "ВЕРТИКАЛЬНАЯ ТАБУЛЯЦИЯ"

echo -e "vvvv" # Вывод 4-х вертикальных табуляций.

echo "=============="


echo "КАВЫЧКИ"

echo -e "42" # Выводит символ " (кавычки с восьмеричным кодом ASCII 42).

echo "=============="


# Конструкция $'X' делает использование ключа -e необязательным.

echo; echo "НОВАЯ СТРОКА И ЗВОНОК"

echo $'n' # Перевод строки.

echo $'a' # Звонок (сигнал).


echo "==============="

echo "КАВЫЧКИ"

# Bash версии 2 и выше допускает использование конструкции $'nnn'.

# Обратите внимание: здесь под 'nnn' подразумевается восьмеричное значение.

echo $'t 42 t' # Кавычки (") окруженные табуляцией.


# В конструкции $'xhhh' допускается использовать и шестнадцатеричные значения.

echo $'t x22 t' # Кавычки (") окруженные табуляцией.

# Спасибо Greg Keraunen, за это примечание.

# Ранние версии Bash допускали употребление конструкции в виде 'x022'.

echo "==============="

echo


# Запись ASCII-символов в переменную.

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

quote=$'42' # запись символа " в переменную.

echo "$quote Эта часть строки ограничена кавычками, $quote а эта -- нет."


echo


# Конкатенация ASCII-символов в переменную.

triple_underline=$'137137137' # 137 -- это восьмеричный код символа '_'.

echo "$triple_underline ПОДЧЕРКИВАНИЕ $triple_underline"


echo


ABC=$'10110210310' # 101, 102, 103 это A, B и C соответственно.

echo $ABC


echo; echo


escape=$'33' # 033 -- восьмеричный код экранирующего символа.

echo ""escape" выводится как $escape"

# вывод отсутствует.


echo; echo


exit 0

Еще один пример использования конструкции $' ' вы найдете в Пример 34-1.

"

кавычки

echo "Привет" # Привет

echo "Он сказал: "Привет"." # Он сказал: "Привет".


$

символ доллара (если за комбинацией символов $ следует имя переменной, то она не будет разыменована)

echo "$variable01" # выведет $variable01


\

обратный слэш

echo "\" # выведет


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

# Простое экранирование и кавычки

echo z # z

echo \z # z

echo 'z' # z

echo '\z' # \z

echo "z" # z

echo "\z" # z


# Подстановка команды

echo `echo z` # z

echo `echo \z` # z

echo `echo \z` # z

echo `echo \\z` # z

echo `echo \\\z` # z

echo `echo \\\z` # \z

echo `echo "z"` # z

echo `echo "\z"` # z


# Встроенный документ

cat <<EOF

z

EOF # z


cat <<EOF

\z

EOF # z


# Эти примеры предоставил Stephane Chazelas.


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

variable=

echo "$variable"

# Не работает - дает сообщение об ошибке:

# test.sh: : command not found

# В "чистом" виде экранирующий (escape) символ не может быть записан в переменную.

#

# Фактически, в данном примере, происходит экранирование символа перевода строки

#+ в результате получается такая команда: variable=echo "$variable"

#+ ошибочное присваивание


variable=

23skidoo

echo "$variable" # 23skidoo

# Здесь все в порядке, поскольку вторая строка

#+ является нормальным, с точки зрения присваивания, выражением.


variable=

# ^ За escape-символом следует пробел

echo "$variable" # пробел


variable=\

echo "$variable" #


variable=\

echo "$variable"

# Не работает - сообщение об ошибке:

# test.sh: : command not found

#

# Первый escape-символ экранирует второй, а третий оказывается неэкранированным,

#+ результат тот же, что и в первом примере.


variable=\\

echo "$variable" # \

# Второй и четвертый escape-символы экранированы.

# Это нормально.


Экранирование пробелов предотвращает разбиение списка аргументов командной строки на отдельные аргументы.

file_list="/bin/cat /bin/gzip /bin/more /usr/bin/less /usr/bin/emacs-20.7"

# Список файлов как аргумент(ы) командной строки.


# Добавить два файла в список и вывести список.

ls -l /usr/X11R6/bin/xsetroot /sbin/dump $file_list


echo "-------------------------------------------------------------------------"


# Что произойдет, если экранировать пробелы в списке?

ls -l /usr/X11R6/bin/xsetroot /sbin/dump $file_list

# Ошибка: первые три файла будут "слиты" воедино

# и переданы команде 'ls -l' как один аргумент

# потому что два пробела, разделяющие аргументы (слова) -- экранированы.


Кроме того, escape-символ позволяет писать многострочные команды. Обычно, каждая команда занимает одну строку, но escape-символ позволяет экранировать символ перевода строки, в результате чего одна команда может занимать несколько строк.

(cd /source/directory && tar cf - . ) |

(cd /dest/directory && tar xpvf -)

# Команда копирования дерева каталогов.

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


# Альтернативный вариант:

tar cf - -C /source/directory . |

tar xpvf - -C /dest/directory

# См. примечание ниже.

# (Спасибо Stephane Chazelas.)

Если строка сценария заканчивается символом создания конвейера |, то необходимость в применении символа , для экранирования перевода строки, отпадает. Тем не менее, считается хорошим тоном, всегда использовать символ "" в конце промежуточных строк многострочных команд.


echo "foo

bar"

#foo

#bar


echo


echo 'foo

bar' # Никаких различий.

#foo

#bar


echo


echo foo

bar # Перевод строки экранирован.

#foobar


echo


echo "foo

bar" # Внутри "нестрогих" кавычек символ "" интерпретируется как экранирующий.

#foobar


echo


echo 'foo

bar' # В "строгих" кавычках обратный слэш воспринимается как обычный символ.

#foo

#bar


# Примеры предложены Stephane Chazelas.


Глава 6. Завершение и код завершения

...эта часть Bourne shell покрыта мраком, тем не менее все пользуются ею.

Chet Ramey

Команда exit может использоваться для завершения работы сценария, точно так же как и в программах на языке C. Кроме того, она может возвращать некоторое значение, которое может быть проанализировано вызывающим процессом.

Каждая команда возвращает код завершения (иногда код завершения называют возвращаемым значением ). В случае успеха команда должна возвращать 0, а в случае ошибки -- ненулевое значение, которое, как правило, интерпретируется как код ошибки. Практически все команды и утилиты UNIX возвращают 0 в случае успешного завершения, но имеются и исключения из правил.


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

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


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

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

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.