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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

-rw-r--r-- 1 bozo bozo 4034 Jul 18 22:04 data1.xrolo

-rw-r--r-- 1 bozo bozo 4602 May 25 13:58 data1.xrolo.bak

-rw-r--r-- 1 bozo bozo 877 Dec 17 2000 employment.xrolo

bash ls -l

total 10

-rw-r--r-- 1 bozo bozo 4034 Jul 18 22:04 data1.xrolo

-rw-r--r-- 1 bozo bozo 4602 May 25 13:58 data1.xrolo.bak

-rw-r--r-- 1 bozo bozo 877 Dec 17 2000 employment.xrolo

locate, slocate

Команда locateопределяет местонахождение файла, используя свою базу данных, создаваемую специально для этих целей. Команда slocate-- это защищенная версия locate(которая может оказаться простым псевдонимом команды slocate).

$bash locate hickson

/usr/lib/xephem/catalogs/hickson.edb

readlink

Возвращает имя файла, на который указывает символическая ссылка.

bash$ readlink /usr/bin/awk

../../bin/gawk

strings

Команда stringsиспользуется для поиска печатаемых строк в двоичных файлах. Она выводит последовательности печатаемых символов, обнаруженных в заданном файле. Может использоваться для прикидочного анализа дамп-файлов (core dump) или для отыскания информации о типе файла, например для графических файлов неизвестного формата (например, strings image-file | moreможет вывести такую строчку: JFIF , что говорит о том, что мы имеем дело с графическим файлом в формате jpeg ). В сценариях, вероятнее всего, вам придется использовать эту команду в связке с grep или sed. См. Пример 10-7 и Пример 10-9.

Пример 12-26. "Расширенная" команда strings

#!/bin/bash

# wstrings.sh: "word-strings" (расширенная команда "strings")

#

# Этот сценарий фильтрует вывод команды "strings" путем проверки на соответствие

#+ выводимых слов по файлу словаря.

# Таким способом эффективно "отсекается" весь "мусор",

#+ и выводятся только распознанные слова.

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

# Стандартная проверка входных аргументов

ARGS=1

E_BADARGS=65

E_NOFILE=66

if [ $# -ne $ARGS ]

then

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

exit $E_BADARGS

fi

if [ ! -f "$1" ] # Проверка наличия файла.

then

echo "Файл \"$1\" не найден."

exit $E_NOFILE

fi

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

MINSTRLEN=3 # Минимальная длина строки.

WORDFILE=/usr/share/dict/linux.words # Файл словаря.

# Можно указать иной

#+ файл словаря

#+ в формате -- "одно слово на строке".

wlist=`strings "$1" | tr A-Z a-z | tr '[:space:]' Z | \

tr -cs '[:alpha:]' Z | tr -s '\173-\377' Z | tr Z ' '`

# Трансляция вывода от 'strings' с помощью нескольких 'tr'.

# "tr A-Z a-z" -- перевод в нижний регистр.

# "tr '[:space:]'" -- конвертирует пробелы в символы Z.

# "tr -cs '[:alpha:]' Z" -- конвертирует неалфавитные символы в символы Z,

#+ и удаляет повторяющиеся символы Z.

# "tr -s '\173-\377' Z" -- Конвертирует все символы, с кодами выше 'z' в Z

#+ и удаляет повторяющиеся символы Z,

#+ эта команда удалит все символы, которые не были распознаны предыдущими

#+ командами трансляции (tr).

# Наконец, "tr Z ' '" -- преобразует все символы Z в пробелы,

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

# Обратите внимание на технику многоуровневой обработки с помощью 'tr',

#+ каждый раз эта команда вызывается с различным набором аргументов.

for word in $wlist # Важно:

# переменная $wlist не должна заключаться в кавычки.

# "$wlist" -- не сработает.

# Почему?

do

strlen=${#word} # Дина строки.

if [ "$strlen" -lt "$MINSTRLEN" ] # Не рассматривать короткие строки.

then

continue

fi

grep -Fw $word "$WORDFILE" # Проверка слова по словарю.

done

exit 0

Сравнение

diff, patch

diff: очень гибкая утилита сравнения файлов. Она выполняет построчное сравнение файлов. В отдельных случаях, таких как поиск по словарю, может оказаться полезной фильтрация файлов с помощью sort и uniqперед тем как отдать поток данных через конвейер утилите diff. diff file-1 file-2-- выведет строки, имеющие отличия, указывая -- какому файлу, какая строка принадлежит.

С ключом --side-by-side , команда diffвыведет сравниваемые файлы в две колонки, с указанием несовпадающих строк. Ключи -c и -u так же служат для облегчения интерпретации результатов работы diff.

Существует ряд интерфейсных оболочек для утилиты diff, среди них можно назвать: spiff, wdiff, xdiffи mgdiff.

картинка 101Команда diffвозвращает код завершения 0, если сравниваемые файлы идентичны и 1, если они отличаются. Это позволяет использовать diffв условных операторах внутри сценариев на языке командной оболочки (см. ниже).

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

Интервал:

Закладка:

Сделать

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

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


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

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

x