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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

unarc, unarj, unrar

Этот набор утилит предназначен для распаковки архивов, созданных с помощью DOS архиваторов -- arc.exe , arj.exe и rar.exe .

Получение сведений о файлах

file

Утилита идентификации файлов. Команда file file-nameверне тип файла file-name , например, ascii text или data . Для этого она анализирует сигнатуру, или магическое число и сопоставляет ее со списком известных сигнатур из /usr/share/magic , /etc/magic или /usr/lib/magic (в зависимости от дистрибутива Linux/UNIX).

-f -- ключ пакетного режима работы утилиты file, в этом случае утилита принимает список анализируемых имен файлов из заданного файла. Ключ -z используется для анализа файлов в архиве.

bash$ file test.tar.gz

test.tar.gz: gzip compressed data, deflated, last modified: Sun Sep 16 13:34:51 2001, os: Unix

bash file -z test.tar.gz

test.tar.gz: GNU tar archive (gzip compressed data, deflated, last modified: Sun Sep 16 13:34:51 2001, os: Unix)

Пример 12-24. Удаление комментариев из файла с текстом программы на языке C

#!/bin/bash

# strip-comment.sh: Удаление комментариев (/* COMMENT */) из исходных текстов программ на языке C.

E_NOARGS=65

E_ARGERROR=66

E_WRONG_FILE_TYPE=67

if [ $# -eq "$E_NOARGS" ]

then

echo "Порядок использования: `basename $0` C-program-file" >&2 # Вывод сообщения на stderr.

exit $E_ARGERROR

fi

# Проверка типа файла.

type=`eval file $1 | awk '{ print $2, $3, $4, $5 }'`

# "file $1" -- выводит тип файла...

# затем awk удаляет первое поле -- имя файла...

# после этого результат записывается в переменную "type".

correct_type="ASCII C program text"

if [ "$type" != "$correct_type" ]

then

echo

echo "Этот сценарий работает только с исходными текстами программ на языке C."

echo

exit $E_WRONG_FILE_TYPE

fi

# Довольно замысловатый сценарий sed :

#--------

sed '

/^\/\*/d

/.*\/\*/d

' $1

#--------

# Если вы потратите несколько часов на изучение основ sed, то он станет немного понятнее.

# Следовало бы добавить еще обработку

#+ комментариев, расположенных в одной строке с кодом.

# Оставляю это вам, в качестве упражнения.

# Кроме того, этот сценарий удалит все строки, которые содержат комбинации символов "*/" или "/*",

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

exit 0

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

# Строки, расположенные ниже не будут исполнены из-за стоящей выше команды 'exit 0'.

# Stephane Chazelas предложил другой, альтернативный вариант:

usage() {

echo "Порядок использования: `basename $0` C-program-file" >&2

exit 1

}

WEIRD=`echo -n -e '\377'` # или WEIRD=$'\377'

[[ $# -eq 1 ]] || usage

case `file "$1"` in

*"C program text"*) sed -e "s%/\*%${WEIRD}%g;s%\*/%${WEIRD}%g" "$1" \

| tr '\377\n' '\n\377' \

| sed -ne 'p;n' \

| tr -d '\n' | tr '\377' '\n';;

*) usage;;

esac

# Этот вариант, все еще некорректно обрабатывает такие строки как:

# printf("/*");

# или

# /* /* ошибочный вложенный комментарий */

#

# Для обработки специальных случаев (\", \\" ...) придется написать синтаксический анализатор

# (может быть с помощью lex или yacc?).

exit 0

which

Команда which command-xxxвернет полный путь к "command-xxx". Очень полезна для того, чтобы узнать -- установлена ли та или иная утилита в системе.

$bash which rm

/usr/bin/rm

whereis

Очень похожа на which, упоминавшуюся выше. Команда whereis command-xxxвернет полный путь к "command-xxx", но кроме того, еще и путь к manpage -- файлу, странице справочника по заданной утилите.

$bash whereis rm

rm: /bin/rm /usr/share/man/man1/rm.1.bz2

whatis

Утилита whatis filexxxотыщет "filexxx" в своей базе данных. Может рассматриваться как упрощенный вариант команды man.

$bash whatis whatis

whatis (1) - search the whatis database for complete words

Пример 12-25. Исследование каталога /usr/X11R6/bin

#!/bin/bash

# Что находится в каталоге /usr/X11R6/bin?

DIRECTORY="/usr/X11R6/bin"

# Попробуйте также "/bin", "/usr/bin", "/usr/local/bin", и т.д.

for file in $DIRECTORY/*

do

whatis `basename $file` # Вывод информации о файле.

done

exit 0

# Вывод этого сценария можно перенаправить в файл:

# ./what.sh >>whatis.db

# или включить постраничный просмотр на экране,

# ./what.sh | less

См. также Пример 10-3.

vdir

Вывод списка файлов в каталоге. Тот же эффект имеет команда ls -l.

Это одна из утилит GNU fileutils .

bash$ vdir

total 10

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

Интервал:

Закладка:

Сделать

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

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


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

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

x