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




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


local IFS= local result="${1%%[${2}]*}"

echo ${#result} }

#:docstring strstr: # Порядок использования: strstr s1 s2 # # Strstr выводит подстроку первого вхождения строки s2 # в строке s1, или ничего не выводит, если подстрока s2 в строке s1 не найдена. # Если s2 содержит строку нулевой длины, то strstr выводит строку s1. #:end docstring:

###;;;autoload function strstr () { # Если s2 -- строка нулевой длины, то вывести строку s1 [ ${#2} -eq 0 ] && { echo "$1" ; return 0; }

# не выводить ничего, если s2 не найдена в s1 case "$1" in *$2*) ;; *) return 1;; esac

# использовать шаблон, для удаления всех несоответствий после s2 в s1 first=${1/$2*/}

# Затем удалить все несоответствия с начала строки echo "${1##$first}" }

#:docstring strtok: # Порядок использования: strtok s1 s2 # # Strtok рассматривает строку s1, как последовательность из 0, или более, # лексем (токенов), разделенных символами строки s2 # При первом вызове (с непустым аргументом 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 конец библиотеки

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




Содержание  Назад  Вперед