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


Программирование на языке сценариев командной оболочки - стр. 320


# - Main - if [ $# = 0 ] ; then cd `pwd` # ==> Если аргумент командной строки отсутствует, то используется текущий каталог. else cd $1 # ==> иначе перейти в заданный каталог. fi echo "Начальный каталог = `pwd`" swfi=0 # ==> Признак завершения поиска. deep=0 # ==> Уровень вложенности. numdirs=0 zz=0

while [ "$swfi" != 1 ] # Пока поиск не закончен... do search # ==> Вызвать функцию поиска. done echo "Всего каталогов = $numdirs"

exit 0 # ==> Попробуйте разобраться в том как этот сценарий работает.

Noah Friedman дал разрешение на публикацию своей библиотеки функций для работы со строками, которая, по сути, воспроизводит некоторые библиотечные функции языка C.

Пример A-20. Функции для работы со строками

#!/bin/bash

# string.bash --- эмуляция библиотеки функций string(3) # Автор: Noah Friedman <friedman@prep.ai.mit.edu> # ==> Используется с его разрешения. # Дата создания: 1992-07-01 # Дата последней модификации: 1993-09-29 # Public domain

# Преобразование в синтаксис bash v2 выполнил Chet Ramey

# Комментарий: # Код:

#:docstring strcat: # Порядок использования: strcat s1 s2 # # Strcat добавляет содержимое переменной s2 к переменной s1. # # Пример: # a="foo" # b="bar" # strcat a b # echo $a # => foobar # #:end docstring:

###;;;autoload function strcat () { local s1_val s2_val

s1_val=${!1} # косвенная ссылка s2_val=${!2} eval "$1"=\'"${s1_val}${s2_val}"\' # ==> eval $1='${s1_val}${s2_val}' во избежание проблем, # ==> если одна из переменных содержит одиночную кавычку. }

#:docstring strncat: # Порядок использования: strncat s1 s2 $n # # Аналог strcat, но добавляет не более n символов из # переменной s2. Результат выводится на stdout. # # Пример: # a=foo # b=barbaz # strncat a b 3 # echo $a # => foobar # #:end docstring:

###;;;autoload function strncat () { local s1="$1" local s2="$2" local -i n="$3" local s1_val s2_val

s1_val=${!s1} # ==> косвенная ссылка s2_val=${!s2}




Начало  Назад  Вперед



Книжный магазин