• Пожаловаться

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

Здесь есть возможность читать онлайн «Мендель Купер: Искусство программирования на языке сценариев командной оболочки» весь текст электронной книги совершенно бесплатно (целиком полную версию). В некоторых случаях присутствует краткое содержание. категория: Программирование / на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале. Библиотека «Либ Кат» — LibCat.ru создана для любителей полистать хорошую книжку и предлагает широкий выбор жанров:

любовные романы фантастика и фэнтези приключения детективы и триллеры эротика документальные научные юмористические анекдоты о бизнесе проза детские сказки о религиии новинки православные старинные про компьютеры программирование на английском домоводство поэзия

Выбрав категорию по душе Вы сможете найти действительно стоящие книги и насладиться погружением в мир воображения, прочувствовать переживания героев или узнать для себя что-то новое, совершить внутреннее открытие. Подробная информация для ознакомления по текущему запросу представлена ниже:

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

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Искусство программирования на языке сценариев командной оболочки»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.

Мендель Купер: другие книги автора


Кто написал Искусство программирования на языке сценариев командной оболочки? Узнайте фамилию, как зовут автора книги и список всех его произведений по сериям.

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Искусство программирования на языке сценариев командной оболочки», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

then kill $sig $pid

fi

done

}

function my_ip() # IP адрес

{

MY_IP=$(/sbin/ifconfig ppp0 | awk '/inet/ { print $2 } ' | sed -e s/addr://)

MY_ISP=$(/sbin/ifconfig ppp0 | awk '/P-t-P/ { print $3 } ' | sed -e s/P-t-P://)

}

function ii() # Дополнительные сведения о системе

{

echo -e "\nВы находитесь на ${RED}$HOST"

echo -e "\nДополнительная информация:$NC " ; uname -a

echo -e "\n${RED}В системе работают пользователи:$NC " ; w -h

echo -e "\n${RED}Дата:$NC " ; date

echo -e "\n${RED}Время, прошедшее с момента последней перезагрузки :$NC " ; uptime

echo -e "\n${RED}Память :$NC " ; free

my_ip 2>&- ;

echo -e "\n${RED}IP адрес:$NC" ; echo ${MY_IP:-"Соединение не установлено"}

echo -e "\n${RED}Адрес провайдера (ISP):$NC" ; echo ${MY_ISP:-"Соединение не установлено"}

echo

}

# Разные утилиты:

function repeat() # повторить команду n раз

{

local i max

max=$1; shift;

for ((i=1; i <= max ; i++)); do # --> C-подобный синтаксис

eval "$@";

done

}

function ask()

{

echo -n "$@" '[y/n] ' ; read ans

case "$ans" in

y*|Y*) return 0 ;;

*) return 1 ;;

esac

}

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

#

# ПРОГРАММНЫЕ ДОПОЛНЕНИЯ - ТОЛЬКО НАЧИНАЯ С ВЕРСИИ BASH-2.04

# Большая часть дополнений взята из докуентации к bash 2.05 и из

# пакета 'Bash completion' (http://www.caliban.org/bash/index.shtml#completion)

# автор -- Ian McDonalds

# Фактически, у вас должен стоять bash-2.05a

#

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

if [ "${BASH_VERSION%.*}" \< "2.05" ]; then

echo "Вам необходимо обновиться до версии 2.05"

return

fi

shopt -s extglob # необходимо

set +o nounset # иначе некоторые дополнения не будут работать

complete -A hostname rsh rcp telnet rlogin r ftp ping disk

complete -A export printenv

complete -A variable export local readonly unset

complete -A enabled builtin

complete -A alias alias unalias

complete -A function function

complete -A user su mail finger

complete -A helptopic help

complete -A shopt shopt

complete -A stopped -P '%' bg

complete -A job -P '%' fg jobs disown

complete -A directory mkdir rmdir

complete -A directory -o default cd

# Архивация

complete -f -o default -X '*.+(zip|ZIP)' zip

complete -f -o default -X '!*.+(zip|ZIP)' unzip

complete -f -o default -X '*.+(z|Z)' compress

complete -f -o default -X '!*.+(z|Z)' uncompress

complete -f -o default -X '*.+(gz|GZ)' gzip

complete -f -o default -X '!*.+(gz|GZ)' gunzip

complete -f -o default -X '*.+(bz2|BZ2)' bzip2

complete -f -o default -X '!*.+(bz2|BZ2)' bunzip2

# Postscript,pdf,dvi.....

complete -f -o default -X '!*.ps' gs ghostview ps2pdf ps2ascii

complete -f -o default -X '!*.dvi' dvips dvipdf xdvi dviselect dvitype

complete -f -o default -X '!*.pdf' acroread pdf2ps

complete -f -o default -X '!*.+(pdf|ps)' gv

complete -f -o default -X '!*.texi*' makeinfo texi2dvi texi2html texi2pdf

complete -f -o default -X '!*.tex' tex latex slitex

complete -f -o default -X '!*.lyx' lyx

complete -f -o default -X '!*.+(htm*|HTM*)' lynx html2ps

# Multimedia

complete -f -o default -X '!*.+(jp*g|gif|xpm|png|bmp)' xv gimp

complete -f -o default -X '!*.+(mp3|MP3)' mpg123 mpg321

complete -f -o default -X '!*.+(ogg|OGG)' ogg123

complete -f -o default -X '!*.pl' perl perl5

# Эти 'универсальные' дополнения работают тогда, когда команды вызываются

# с, так называемыми, 'длинными ключами', например: 'ls --all' вместо 'ls -a'

_get_longopts ()

{

$1 --help | sed -e '/--/!d' -e 's/.*--\([^[:space:].,]*\).*/--\1/'| \

grep ^"$2" |sort -u ;

}

_longopts_func ()

{

case "${2:-*}" in

-*) ;;

*) return ;;

esac

case "$1" in

\~*) eval cmd="$1" ;;

*) cmd="$1" ;;

esac

COMPREPLY=( $(_get_longopts ${1} ${2} ) )

}

complete -o default -F _longopts_func configure bash

complete -o default -F _longopts_func wget id info a2ps ls recode

_make_targets ()

{

local mdef makef gcmd cur prev i

COMPREPLY=()

cur=${COMP_WORDS[COMP_CWORD]}

prev=${COMP_WORDS[COMP_CWORD-1]}

# Если аргумент prev это -f, то вернуть возможные варианты имен файлов.

# будем великодушны и вернем несколько вариантов

# `makefile Makefile *.mk'

case "$prev" in

-*f) COMPREPLY=( $(compgen -f $cur ) ); return 0;;

esac

# Если запрошены возможные ключи, то вернуть ключи posix

case "$cur" in

-) COMPREPLY=(-e -f -i -k -n -p -q -r -S -s -t); return 0;;

esac

# попробовать передать make `makefile' перед тем как попробовать передать `Makefile'

if [ -f makefile ]; then

mdef=makefile

elif [ -f Makefile ]; then

mdef=Makefile

else

mdef=*.mk

fi

# прежде чем просмотреть "цели", убедиться, что имя makefile было задано

# ключом -f

for (( i=0; i < ${#COMP_WORDS[@]}; i++ )); do

if [[ ${COMP_WORDS[i]} == -*f ]]; then

eval makef=${COMP_WORDS[i+1]}

break

fi

done

[ -z "$makef" ] && makef=$mdef

# Если задан шаблон поиска, то ограничиться

# этим шаблоном

if [ -n "$2" ]; then gcmd='grep "^$2"' ; else gcmd=cat ; fi

# если мы не желаем использовать *.mk, то необходимо убрать cat и использовать

# test -f $makef с перенаправлением ввода

COMPREPLY=( $(cat $makef 2>/dev/null | awk 'BEGIN {FS=":"} /^[^.# ][^=]*:/ {print $1}' | tr -s ' ' '\012' | sort -u | eval $gcmd ) )

}

complete -F _make_targets -X '+($*|*.[cho])' make gmake pmake

# cvs(1) completion

_cvs ()

{

local cur prev

COMPREPLY=()

cur=${COMP_WORDS[COMP_CWORD]}

prev=${COMP_WORDS[COMP_CWORD-1]}

if [ $COMP_CWORD -eq 1 ] || [ "${prev:0:1}" = "-" ]; then

COMPREPLY=( $( compgen -W 'add admin checkout commit diff \

export history import log rdiff release remove rtag status \

tag update' $cur ))

else

COMPREPLY=( $( compgen -f $cur ))

fi

return 0

}

complete -F _cvs cvs

_killall ()

{

local cur prev

COMPREPLY=()

cur=${COMP_WORDS[COMP_CWORD]}

# получить список процессов

COMPREPLY=( $( /usr/bin/ps -u $USER -o comm | \

sed -e '1,1d' -e 's#[]\[]##g' -e 's#^.*/##'| \

awk '{if ($0 ~ /^'$cur'/) print $0}' ))

return 0

}

complete -F _killall killall killps

# Функция обработки мета-команд

# В настоящее время недостаточно отказоустойчива (например, mount и umount

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Искусство программирования на языке сценариев командной оболочки» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё не прочитанные произведения.


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

Обсуждение, отзывы о книге «Искусство программирования на языке сценариев командной оболочки» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.