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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

В общем случае, diffиспользуется для генерации файла различий, который используется как аргумент команды patch. Ключ -e отвечает за вывод файла различий в формате, пригодном для использования с edили ex.

patch: гибкая утилита для "наложения заплат". С помощью файла различий, сгенерированного утилитой diff, утилита patchможет использоваться для обновления устаревших версий файлов. Это позволяет распространять относительно небольшие "diff"-файлы вместо целых пакетов. Распространение "заплат" к ядру стало наиболее предпочтительным методом распространения более новых версий ядра Linux.

patch -p1

# Применит все изменения из 'patch-file'

# к файлам, описанным там же.

# Так выполняется обновление пакетов до более высоких версий.

Наложение "заплат" на ядро:

cd /usr/src

gzip -cd patchXX.gz | patch -p0

# Обновление исходных текстов ядра с помощью 'patch'.

# Пример взят из файла "README",

# автор не известен (Alan Cox?).

картинка 102Кроме того, утилита diffв состоянии выполнять рекурсивный обход каталогов.

bash$ diff -r ~/notes1 ~/notes2

Only in /home/bozo/notes1: file02

Only in /home/bozo/notes1: file03

Only in /home/bozo/notes2: file04

картинка 103Утилита zdiffсравнивает сжатые, с помощью gzip , файлы.

diff3

Расширенная версия diff, которая сравнивает сразу 3 файла. В случае успеха возвращает 0, но, к сожалению, не дает никакой информации о результатах сравнения.

bash$ diff3 file-1 file-2 file-3

====

1:1c

This is line 1 of "file-1".

2:1c

This is line 1 of "file-2".

3:1c

This is line 1 of "file-3"

sdiff

Сравнение и/или редактирование двух файлов перед объединением их в один файл. Это интерактивная утилита, по своей природе, и из-за этого она довольно редко используется в сценариях.

cmp

Утилита cmp-- это упрощенная версия diff. В то время, как diffвыводит подробную информацию об имеющихся различиях, утилита cmpлишь показывет номер строки и позицию в строке, где было встречено различие.

картинка 104Подобно команде diff, команда cmpвозвращает код завершения 0, если файлы идентичны и 1, если они различны. Это позволяет использовать команду cmpв условных операторах.

Пример 12-27. Пример сравнения двух файлов с помощью cmp.

#!/bin/bash

ARGS=2 # Ожидаются два аргумента командной строки.

E_BADARGS=65

E_UNREADABLE=66

if [ $# -ne "$ARGS" ]

then

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

exit $E_BADARGS

fi

if [[ ! -r "$1" || ! -r "$2" ]]

then

echo "Оба файла должны существовать и должны быть доступны для чтения."

exit $E_UNREADABLE

fi

cmp $1 $2 &> /dev/null # /dev/null -- "похоронит" вывод от команды "cmp".

# cmp -s $1 $2 даст тот же результат ("-s" -- флаг "тишины" для "cmp")

# Спасибо Anders Gustavsson за замечание.

#

# Также применимо к 'diff', т.е., diff $1 $2 &> /dev/null

if [ $? -eq 0 ] # Проверка кода возврата команды "cmp".

then

echo "Файл \"$1\" идентичен файлу \"$2\"."

else

echo "Файл \"$1\" отличается от файла \"$2\"."

fi

exit 0

картинка 105Для работы с gzip файлами используется утилита zcmp.

comm

Универсальная утилита сравнения. Работает с отсортированными файлами.

comm -options first-file second-file

comm file-1 file-2-- вывод в три колонки:

 колонка 1 = уникальные строки для file-1

 колонка 2 = уникальные строки для file-2

 колонка 3 = одинаковые строки.

Ключи, подавляющие вывод в одной или более колонках.

-1 -- подавление вывода в колонку 1

-2 -- подавление вывода в колонку 2

-3 -- подавление вывода в колонку 3

-12 -- подавление вывода в колонки 1 и 2 , и т.д.

Утилиты

basename

Выводит только название файла, без каталога размещения. Конструкция basename $0-- позволяет сценарию узнать свое имя, то есть имя файла, который был запущен. Это имя может быть использовано для вывода сообщений, напрмиер:

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

dirname

Отсекает basenameот полного имени файла и выводит только путь к файлу.

картинка 106Утилитам basenameи dirnameможет быть передана любая строка, в качестве аргумента. Этот аргумент необязательно должен быть именем существующего файла (см. Пример A-8).

Пример 12-28. Утилиты basename и dirname

#!/bin/bash

a=/home/bozo/daily-journal.txt

echo "Basename для /home/bozo/daily-journal.txt = `basename $a`"

echo "Dirname для /home/bozo/daily-journal.txt = `dirname $a`"

echo

echo "Мой домашний каталог `basename ~/`." # Можно указать просто ~.

echo "Каталог моего домашнего каталога `dirname ~/`." # Можно указать просто ~.

exit 0

split

Утилита разбивает файл на несколько частей. Обычно используется для разбиения больших файлов, чтобы их можно было записать на дискеты или передать по электронной почте по частям.

sum, cksum, md5sum

Эти утилиты предназначены для вычисления контрольных сумм. Контрольная сумма -- это некоторое число, вычисляемое исходя из содержимого файла, и служит для контроля целостности информации в файле. Сценарий может выполнять проверку контрольных сумм для того, чтобы убедиться, что файл не был изменен или поврежден. Для большей безопасности, рекомендуется использовать 128-битную сумму, генерируемую утилитой md5sum( message digest check sum).

bash$ cksum /boot/vmlinuz

1670054224 804083 /boot/vmlinuz

bash$ md5sum /boot/vmlinuz

0f43eccea8f09e0a0b2b5cf1dcf333ba /boot/vmlinuz

Обратите внимание: утилита cksumвыводит контрольную сумму и размер файла в байтах.

Пример 12-29. Проверка целостности файла

#!/bin/bash

# file-integrity.sh: Проверка целостности файлов в заданном каталоге

E_DIR_NOMATCH=70

E_BAD_DBFILE=71

dbfile=File_record.md5

# Файл для хранения контрольных сумм.

set_up_database ()

{

echo ""$directory"" > "$dbfile"

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

md5sum "$directory"/* >> "$dbfile"

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

}

check_database ()

{

local n=0

local filename

local checksum

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

# Возможно эта проверка и не нужна,

#+ но лучше перестраховаться сейчас, чем жалеть об этом потом.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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