Чтение онлайн

на главную - закладки

Жанры

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

Купер Мендель

Шрифт:

# При первом вызове (с непустым аргументом s1)

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

# Функция запоминает свое положение в строке s1 от вызова к вызову,

# так что последующие вызовы должны производиться с пустым первым аргументом,

# чтобы продолжить выделение лексем из строки s1.

# После вывода последней лексемы, все последующие вызовы будут выводить на stdout

# пустое значение. Строка-разделитель может изменяться от вызова к вызову.

#:end docstring:

###;;;autoload

function strtok

{

:

}

#:docstring strtrunc:

#

Порядок использования: strtrunc $n $s1 {$s2} {$...}

#

# Используется многими функциями, такими как strncmp, чтобы отсечь "лишние" символы.

# Выводит первые n символов в каждой из строк s1 s2 ... на stdout.

#:end docstring:

###;;;autoload

function strtrunc

{

n=$1 ; shift

for z; do

echo "${z:0:$n}"

done

}

# provide string

# string.bash конец библиотеки

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

# ==> Все, что находится ниже, добавлено автором документа.

# ==> Чтобы этот сценарий можно было использовать как "библиотеку", необходимо

# ==> удалить все, что находится ниже и "source" этот файл в вашем сценарии.

# strcat

string0=one

string1=two

echo

echo "Проверка функции \"strcat\" :"

echo "Изначально \"string0\" = $string0"

echo "\"string1\" = $string1"

strcat string0 string1

echo "Теперь \"string0\" = $string0"

echo

# strlen

echo

echo "Проверка функции \"strlen\" :"

str=123456789

echo "\"str\" = $str"

echo -n "Длина строки \"str\" = "

strlen str

echo

# Упражнение:

# ---------

# Добавьте проверку остальных функций.

exit 0

Michael Zick предоставил очень сложный пример работы с массивами и утилитой md5sum, используемой для кодирования сведений о каталоге.

От переводчика:

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

Пример A-21. Directory information

#! /bin/bash

# directory-info.sh

# Parses and lists directory information.

# NOTE: Change lines 273 and 353 per "README" file.

# Michael Zick is the author of this script.

# Used here with his permission.

# Controls

# If overridden by command arguments, they must be in the order:

# Arg1: "Descriptor Directory"

# Arg2: "Exclude Paths"

# Arg3: "Exclude Directories"

#

# Environment Settings override Defaults.

# Command arguments override Environment Settings.

# Default location for content addressed file descriptors.

MD5UCFS=${1:-${MD5UCFS:-'/tmpfs/ucfs'}}

# Directory paths never to list or enter

declare -a \

EXCLUDE_PATHS=${2:-${EXCLUDE_PATHS:-'(/proc /dev /devfs /tmpfs)'}}

# Directories never to list or enter

declare -a \

EXCLUDE_DIRS=${3:-${EXCLUDE_DIRS:-'(ucfs lost+found tmp wtmp)'}}

# Files never to list or enter

declare -a \

EXCLUDE_FILES=${3:-${EXCLUDE_FILES:-'(core "Name with Spaces")'}}

# Here document used as a comment block.

: << LSfieldsDoc

# # # # # List Filesystem Directory Information # # # # #

#

# ListDirectory "FileGlob" "Field-Array-Name"

# or

# ListDirectory -of "FileGlob" "Field-Array-Filename"

# '-of' meaning 'output to filename'

# # # # #

String format description based on: ls (GNU fileutils) version 4.0.36

Produces a line (or more) formatted:

inode permissions hard-links owner group ...

32736 -rw------- 1 mszick mszick

size day month date hh:mm:ss year path

2756608 Sun Apr 20 08:53:06 2003 /home/mszick/core

Unless it is formatted:

inode permissions hard-links owner group ...

266705 crw-rw---- 1 root uucp

major minor day month date hh:mm:ss year path

4, 68 Sun Apr 20 09:27:33 2003 /dev/ttyS4

NOTE: that pesky comma after the major number

NOTE: the 'path' may be multiple fields:

/home/mszick/core

/proc/982/fd/0 -> /dev/null

/proc/982/fd/1 -> /home/mszick/.xsession-errors

/proc/982/fd/13 -> /tmp/tmpfZVVOCs (deleted)

/proc/982/fd/7 -> /tmp/kde-mszick/ksycoca

/proc/982/fd/8 -> socket:[11586]

/proc/982/fd/9 -> pipe:[11588]

If that isn't enough to keep your parser guessing,

either or both of the path components may be relative:

Поделиться:
Популярные книги

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

На границе империй. Том 10. Часть 3

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 3

Сердце для стража

Каменистый Артем
5. Девятый
Фантастика:
фэнтези
боевая фантастика
9.20
рейтинг книги
Сердце для стража

Жандарм 3

Семин Никита
3. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 3

Жена на пробу, или Хозяйка проклятого замка

Васина Илана
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Жена на пробу, или Хозяйка проклятого замка

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Бастард Императора. Том 4

Орлов Андрей Юрьевич
4. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 4

Кодекс Крови. Книга VII

Борзых М.
7. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VII

Идеальный мир для Лекаря 5

Сапфир Олег
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 5

Камень. Книга 3

Минин Станислав
3. Камень
Фантастика:
фэнтези
боевая фантастика
8.58
рейтинг книги
Камень. Книга 3

Матабар

Клеванский Кирилл Сергеевич
1. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар