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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

# tr '[:lower:]' '[:upper:]' <"$1"

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

exit 0

Пример 12-15. lowercase: Изменение имен всех файлов в текущем каталоге в нижний регистр.

#! /bin/bash

#

# Изменит все имена файлов в текущем каталоге в нижнй регистр.

#

for filename in * # Обход всех файлов в каталоге.

do

fname=`basename $filename`

n=`echo $fname | tr A-Z a-z` # Перевести символы в нижний регистр.

if [ "$fname" != "$n" ] # Переименовать только те файлы, имена которых изменились.

then

mv $fname $n

fi

done

exit 0

# Сироки приведенные ниже не будут исполняться, поскольку выше стоит команда "exit".

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

# Запустите эту часть сценария, удалив строки , стоящие выше.

# Сценарий, приведенный выше, не работает с именами файлов, содержащими пробелы или символы перевода строки.

# В связи с этим, Stephane Chazelas предложил следующий вариант:

for filename in * # Нет необходимости использовать basename,

# поскольку "*" возвращает имена, не содержащие "/".

do n=`echo "$filename/" | tr '[:upper:]' '[:lower:]'`

# символьные классы POSIX.

# Завершающий слэш добавлен для того, чтобы символ перевода строки

# не был удален при подстановке команды.

# Подстановка переменной:

n=${n%/} # Удаление завершающего слэша, добавленного выше.

[[ $filename == $n ]] || mv "$filename" "$n"

# Проверка -- действительно ли изменилось имя файла.

done

exit 0

Пример 12-16. du: Преобразование текстового файла из формата DOS в формат UNIX.

#!/bin/bash

# du.sh: Преобразование текстового файла из формата DOS в формат UNIX.

E_WRONGARGS=65

if [ -z "$1" ]

then

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

exit $E_WRONGARGS

fi

NEWFILENAME=$1.unx

CR='\015' # Возврат каретки.

# Строки в текстовых файлах DOS завершаются комбинацией символов CR-LF.

tr -d $CR < $1 > $NEWFILENAME

# Удалить символы CR и записать в новый файл.

echo "Исходный текстовый файл: \"$1\"."

echo "Преобразованный файл: \"$NEWFILENAME\"."

exit 0

Пример 12-17. rot13: Сверхслабое шифрование по алгоритму rot13.

#!/bin/bash

# rot13.sh: Классический алгоритм шифрования rot13,

# который способен "расколоть" даже 3-х летний ребенок.

# Порядок использования: ./rot13.sh filename

# или ./rot13.sh

# или ./rot13.sh и ввести текст с клавиатуры (stdin)

cat "$@" | tr 'a-zA-Z' 'n-za-mN-ZA-M' # "a" заменяется на "n", "b" на "o", и т.д.

# Конструкция 'cat "$@"'

#+ позволяет вводить данные как со stdin, так и из файла.

exit 0

Пример 12-18. Более "сложный" шифр

#!/bin/bash

# crypto-quote.sh: Ограниченное шифрование

# Шифрование ограничивается простой заменой одних алфавитных символов другими.

# Результат очень похож на шифры-загадки

key=ETAOINSHRDLUBCFGJMQPVWZYXK

# Здесь, "key" -- ни что иное, как "перемешанный" алфавит.

# Изменение ключа "key" приведет к изменению шифра.

# Конструкция 'cat "$@"' позволяет вводить данные как со stdin, так и из файла.

# Если используется stdin, то ввод должен завершаться комбинацией Control-D.

# Иначе, в командной строке, сценарию должно быть передано имя файла.

cat "$@" | tr "a-z" "A-Z" | tr "A-Z" "$key"

# | в верхний регистр | шифрование

# Такой прием позволяет шифровать как символы в верхнем регистре, так и в нижнем.

# Неалфавитные символы остаются без изменений.

# Попробуйте зашифровать какой либо текст, например

# "Nothing so needs reforming as other people's habits."

# --Mark Twain

#

# Результат будет:

# "CFPHRCS QF CIIOQ MINFMBRCS EQ FPHIM GIFGUI'Q HETRPQ."

# --BEML PZERC

# Для дешифрации можно использовать следующую комбинацию:

# cat "$@" | tr "$key" "A-Z"

# Этот нехитрый шифр может быть "взломан" 12-ти летним ребенком

#+ с помощью карандаша и бумаги.

exit 0

Различные версии tr

Утилита trимеет две, исторически сложившиеся, версии. BSD-версия не использует квадратные скобки ( tr a-z A-Z), в то время как SysV-версия использует их ( tr '[a-z]' '[A-Z]'). GNU-версия утилиты trнапоминает версию BSD, но диапазоны символов обязательно должны заключаться в квадратные скобки.

fold

Выравнивает текст по ширине, разрывая, если это необходимо, слова. Особый интерес представляет ключ -s , который производит перенос строк по пробелам, стараясь не разрывать слова. (см. Пример 12-19 и Пример A-2).

fmt

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

Пример 12-19. Отформатированный список файлов.

#!/bin/bash

WIDTH=40 # 40 символов в строке.

b=`ls /usr/local/bin` # Получить список файлов...

echo $b | fmt -w $WIDTH

# То же самое можно выполнить командой

# echo $b | fold - -s -w $WIDTH

exit 0

См. также Пример 12-4.

картинка 92Очень мощной альтернативой утилите fmt, является утилита par(автор Kamil Toman), которую вы сможете найти на http://www.cs.berkeley.edu/~amc/Par/.

col

Эта утилита с обманчивым названием удаляет из входного потока символы обратной подачи бумаги (код ESC 7). Она так же пытается заменить пробелы на табуляции. Основная область применения утилиты col-- фильтрация вывода отдельных утилит обработки текста, таких как groffи tbl.

column

Форматирование по столбцам. Эта утилита преобразует текст, например какой либо список, в табличное, более "удобочитаемое", представление, вставляя символы табуляции по мере необходимости.

Пример 12-20. Пример форматирования списка файлов в каталоге

#!/bin/bash

# За основу сценария взят пример "man column".

(printf "PERMISSIONS LINKS OWNER GROUP SIZE DATE TIME PROG-NAME\n" \

; ls -l | sed 1d) | column -t

# Команда "sed 1d" удаляет первую строку, выводимую командой ls,

#+ (для локали "С" это строка: "total N",

#+ где "N" -- общее количество файлов.

# Ключ -t, команды "column", означает "табличное" представление.

exit 0

colrm

Утилита удаления колонок. Удаляет колонки (столбцы) сиволов из файла и выводит результат на stdout . colrm 2 4 -- удалит символы со 2-го по 4-й включительно, в каждой строке в файле filename .

картинка 93Если файл содержит символы табуляции или непечатаемые символы, то результат может получиться самым неожиданным. В таких случаях, как правило, утилиту colrm, в конвейере, окружают командами expand и unexpand.

nl

Нумерует строки в файле. nl filename-- выведет файл filename на stdout , и в начале каждой строки вставит ее порядковый номер, счет начинается с первой непустой строки. Если файл не указывается, то принимается ввод со stdin.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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