Чтение онлайн

на главную - закладки

Жанры

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

Купер Мендель

Шрифт:

mv "$1" $TMPFILE

mv "$2" "$1"

mv $TMPFILE "$2"

}

#-----------------------------------

# Функции для работы с процессами/системой:

#-----------------------------------

function my_ps { ps $@ -u $USER -o pid,%cpu,%mem,bsdtime,command ; }

function pp { my_ps f | awk '!/awk/ && $0~var' var=${1:-".*"} ; }

# Эта функция является грубым аналогом 'killall'

в linux

# но не эквивалентна (насколько я знаю) 'killall' в Solaris

function killps # "Прибить" процесс по его имени

{

local pid pname sig="-TERM" # сигнал, рассылаемый по-умолчанию

if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then

echo "Порядок использования: killps [-SIGNAL] шаблон_имени_процесса"

return;

fi

if [ $# = 2 ]; then sig=$1 ; fi

for pid in $(my_ps| awk '!/awk/ && $0~pat { print $1 }' pat=${!#} ) ; do

pname=$(my_ps | awk '$1~var { print $5 }' var=$pid )

if ask "Послать сигнал $sig процессу $pid <$pname>?"

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'

#

автор -- 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

{

Поделиться:
Популярные книги

Проклятый Лекарь IV

Скабер Артемий
4. Каратель
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Проклятый Лекарь IV

Прометей: Неандерталец

Рави Ивар
4. Прометей
Фантастика:
героическая фантастика
альтернативная история
7.88
рейтинг книги
Прометей: Неандерталец

Семья. Измена. Развод

Высоцкая Мария Николаевна
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Семья. Измена. Развод

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

Последний из рода Демидовых

Ветров Борис
Фантастика:
детективная фантастика
попаданцы
аниме
5.00
рейтинг книги
Последний из рода Демидовых

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Темный Лекарь 3

Токсик Саша
3. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 3

Наследница Драконов

Суббота Светлана
2. Наследница Драконов
Любовные романы:
современные любовные романы
любовно-фантастические романы
6.81
рейтинг книги
Наследница Драконов

Книга пяти колец

Зайцев Константин
1. Книга пяти колец
Фантастика:
фэнтези
6.00
рейтинг книги
Книга пяти колец

Приручитель женщин-монстров. Том 9

Дорничев Дмитрий
9. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 9

Изгой. Пенталогия

Михайлов Дем Алексеевич
Изгой
Фантастика:
фэнтези
9.01
рейтинг книги
Изгой. Пенталогия

Камень. Книга шестая

Минин Станислав
6. Камень
Фантастика:
боевая фантастика
7.64
рейтинг книги
Камень. Книга шестая