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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

$1 <--- $2 , $2 <--- $3 , $3 <--- $4 , и т.д.

Прежний аргумент $1 теряется, но аргумент $0 (имя файла сценария) остается без изменений . Если вашему сценарию передается большое количество входных аргументов, то команда shiftпозволит вам получить доступ к аргументам, с порядковым номером больше 9 , без использования {фигурных скобок}.

Пример 4-7. Использование команды shift

#!/bin/bash

# Использование команды 'shift' с целью перебора всех аргументов командной строки.

# Назовите файл с этим сценарием, например "shft",

#+ и вызовите его с набором аргументов, например:

# ./shft a b c def 23 skidoo

until [ -z "$1" ] # До тех пор пока не будут разобраны все входные аргументы...

do

echo -n "$1 "

shift

done

echo # Дополнительная пустая строка.

exit 0

картинка 19Команда shiftможет применяться и к входным аргументам функций. См. Пример 33-10.

Глава 5. Кавычки

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

bash$ ls -l [Vv]*

-rw-rw-r-- 1 bozo bozo 324 Apr 2 15:05 VIEWDATA.BAT

-rw-rw-r-- 1 bozo bozo 507 May 4 14:25 vartrace.sh

-rw-rw-r-- 1 bozo bozo 539 Apr 14 17:11 viewdata.sh

bash$ ls -l '[Vv]*'

ls: [Vv]*: No such file or directory

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

bash$ grep '[Пп]ервая' *.txt

file1.txt:Это первая строка в file1.txt.

file2.txt:Это Первая строка в file2.txt.

Примечательно, что "не окавыченный" вариант команды grep [Пп]ервая *.txtбудет правильно исполняться в Bash, но не в tcsh.

Вообще, желательно использовать двойные кавычки (" ") при обращении к переменным. Это предотвратит интерпретацию специальных символов, которые могут содержаться в именах переменных, за исключением $, ` (обратная кавычка) и \ (escape -- обратный слэш) [ 14 ] Символ "!", помещенный в двойные кавычки, порождает сообщение об ошибке, если команда вводится с командной строки. Вероятно это связано с тем, что этот символ интерпретируется как попытка обращения к истории команд. Однако внутри сценариев такой прием проблем не вызывает. Не менее любопытно поведение символа "\", употребляемого внутри двойных кавычек. bash$ echo hello\! hello! bash$ echo "hello\!" hello\! bash$ echo -e x\ty xty bash$ echo -e "x\ty" x y (Спасибо Wayne Pollock за пояснения.) . То, что символ $ попал в разряд исключений, позволяет выполнять обращение к переменным внутри строк, ограниченных двойными кавычками ( "$variable" ), т.е. выполнять подстановку значений переменных (см. Пример 4-1, выше).

Двойные кавычки могут быть использованы для предотвращения разбиения строки на слова [ 15 ] "Разбиение на слова", в данном случае это означает разделение строки символов на некоторое число аргументов. . Заключение строки в кавычки приводит к тому, что она передается как один аргумент, даже если она содержит пробельные символы - разделители.

variable1="a variable containing five words"

COMMAND This is $variable1 # Исполнение COMMAND с 7 входными аргументами:

# "This" "is" "a" "variable" "containing" "five" "words"

COMMAND "This is $variable1" # Исполнение COMMAND с одним входным аргументом:

# "This is a variable containing five words"

variable2="" # Пустая переменная.

COMMAND $variable2 $variable2 $variable2 # Исполнение COMMAND без аргументов.

COMMAND "$variable2" "$variable2" "$variable2" # Исполнение COMMAND с 3 "пустыми" аргументами.

COMMAND "$variable2 $variable2 $variable2" # Исполнение COMMAND с 1 аргументом (и 2 пробелами).

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

картинка 21Заключение в кавычки аргументов команды echoнеобходимо только в том случае, когда разбиение на отдельные слова сопряжено с определенными трудностями.

Пример 5-1. Вывод "причудливых" переменных

#!/bin/bash

# weirdvars.sh: Вывод "причудливых" переменных

var="'(]\\{}\$\""

echo $var # '(]\{}$"

echo "$var" # '(]\{}$" Никаких различий.

echo

IFS='\'

echo $var # '(] {}$" \ символ-разделитель преобразован в пробел.

echo "$var" # '(]\{}$"

# Примеры выше предоставлены S.C.

exit 0

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

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

echo "Why can't I write 's between single quotes"

echo

# Обходной метод.

echo 'Why can'\''t I write '"'"'s between single quotes'

# |-------| |----------| |-----------------------|

# Три строки, ограниченных одинарными кавычками,

# и экранированные одиночные кавычки между ними.

# Пример любезно предоставлен Stephane Chazelas.

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

картинка 23С отдельными командами и утилитами, такими как echo и sed, экранирующий символ может применяться для получения обратного эффекта - когда обычные символы при экранировании приобретают специальное значение.

Специальное назначение некоторых экранированных символов

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

\n

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

\r

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

\t

табуляция

\v

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

\b

забой (backspace)

\a

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

\0xx

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

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

#!/bin/bash

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

echo; echo

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

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

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

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

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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