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



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


MAXRETVAL=255 # Максимальное значение, которое могут возвращать функции. SUCCESS=0 FAILURE=-1

# Функции

Usage () # Сообщение "Порядок использования:". { if [ -z "$1" ] # Нет аргументов. then msg=filename else msg=$@ fi

echo "Порядок использования: `basename $0` "$msg"" }

Check_if_root () # Проверка прав пользователя. { # из примера "ex39.sh". if [ "$UID" -ne "$ROOT_UID" ] then echo "Этот сценарий должен запускаться с привилегиями root." exit $E_NOTROOT fi }

CreateTempfileName () # Создание "уникального" имени для временного файла. { # Из примера "ex51.sh". prefix=temp suffix=`eval date +%s` Tempfilename=$prefix.$suffix }

isalpha2 () # Проверка, состоит ли строка только из алфавитных символов. { # Из примера "isalpha.sh". [ $# -eq 1 ] || return $FAILURE

case $1 in *[!a-zA-Z]*|"") return $FAILURE;; *) return $SUCCESS;; esac # Спасибо S.C. }

abs () # Абсолютное значение. { # Внимание: Максимально возможное возвращаеиое значение # не может превышать 255. E_ARGERR=-999999

if [ -z "$1" ] # Проверка наличия входного аргумента. then return $E_ARGERR # Код ошибки, обычно возвращаемый в таких случаях. fi

if [ "$1" -ge 0 ] # Если не отрицательное, then # absval=$1 # оставить как есть. else # Иначе, let "absval = (( 0 - $1 ))" # изменить знак. fi

return $absval }

tolower () # Преобразование строк символов в нижний регистр {

if [ -z "$1" ] # Если нет входного аргумента, then #+ выдать сообщение об ошибке echo "(null)" return #+ и выйти из функции. fi

echo "$@" | tr A-Z a-z # Преобразовать все входные аргументы ($@).

return

# Для записи результата работы функции в переменную, используйте операцию подстановки команды. # Например: # oldvar="A seT of miXed-caSe LEtTerS" # newvar=`tolower "$oldvar"` # echo "$newvar" # a set of mixed-case letters # # Упражнение: Добавьте в эту библиотеку функцию перевода символов в верхний регистр. # toupper() [это довольно просто]. }




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