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


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


echo "============================================================="

# А теперь попробуйте получить доступ к локальному массиву #+ за пределами функции. Pass_Array "$argument"

# Функция выведет массив, но... #+ доступ к локальному массиву, за пределами функции, окажется невозможен. echo "Результирующий массив (внутри функции) = ${passed_array[@]}" # "ПУСТОЕ" ЗНАЧЕНИЕ, поскольку это локальная переменная.

echo

exit 0

Более сложный пример передачи массивов в функции, вы найдете в Пример A-11.

  • Использование конструкций с двойными круглыми скобками позволяет применять C-подобный синтаксис операций присвоения и инкремента переменных, а также оформления циклов for и while. См. Пример 10-12 и Пример 10-17.

  • Иногда очень удобно "пропускать" данные через один и тот же фильтр, но с разными параметрами, используя конвейерную обработку. Особенно это относится к tr и grep.

    # Из примера "wstrings.sh".

    wlist=`strings "$1" | tr A-Z a-z | tr '[:space:]' Z | \ tr -cs '[:alpha:]' Z | tr -s '\173-\377' Z | tr Z ' '`

    Пример 33-13. Игры с анаграммами

    #!/bin/bash # agram.sh: Игры с анаграммами.

    # Поиск анаграмм... LETTERSET=etaoinshrdlu

    anagram "$LETTERSET" | # Найти все анаграммы в наборе символов... grep '.......' | # состоящие, как минимум из 7 символов, grep '^is' | # начинающиеся с 'is' grep -v 's$' | # исключая множественное число grep -v 'ed$' # и глаголы в прошедшем времени

    # Здесь используется утилита "anagram" #+ которая входит в состав пакета "yawl" , разработанного автором. # http://ibiblio.org/pub/Linux/libs/yawl-0.2.tar.gz

    exit 0 # Конец.

    bash$ sh agram.sh islander isolate isolead isotheral

    См. также Пример 27-2, Пример 12-18 и Пример A-10.

  • Для создания блочных комментариев можно использовать "анонимные встроенные документы". См. Пример 17-10.

  • Попытка вызова утилиты из сценария на машине, где эта утилита отсутствует, потенциально опасна.


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



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