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


Авторские права

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

Здесь можно скачать бесплатно "Мендель Купер - Искусство программирования на языке сценариев командной оболочки" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Мендель Купер - Искусство программирования на языке сценариев командной оболочки
Рейтинг:
Название:
Искусство программирования на языке сценариев командной оболочки
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

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

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



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






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

# обрабатываются некорректно), но все еще актуальна. Автор Ian McDonald, изменена мной.


_my_command()

{

local cur func cline cspec


COMPREPLY=()

cur=${COMP_WORDS[COMP_CWORD]}


if [ $COMP_CWORD = 1 ]; then

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

elif complete -p ${COMP_WORDS[1]} &>/dev/null; then

cspec=$( complete -p ${COMP_WORDS[1]} )

if [ "${cspec%%-F *}" != "${cspec}" ]; then

# complete -F <function>

#

# COMP_CWORD and COMP_WORDS() доступны на запись,

# так что мы можем установить их перед тем,

# как передать их дальше


# уменьшить на 1 текущий номер лексемы

COMP_CWORD=$(( $COMP_CWORD - 1 ))

# получить имя функции

func=${cspec#*-F }

func=${func%% *}

# получить командную строку, исключив первую команду

cline="${COMP_LINE#$1 }"

# разбить на лексемы и поместить в массив

COMP_WORDS=( $cline )

$func $cline

elif [ "${cspec#*-[abcdefgjkvu]}" != "" ]; then

# complete -[abcdefgjkvu]

#func=$( echo $cspec | sed -e 's/^.*\(-[abcdefgjkvu]\).*$/\1/' )

func=$( echo $cspec | sed -e 's/^complete//' -e 's/[^ ]*$//' )

COMPREPLY=( $( eval compgen $func $cur ) )

elif [ "${cspec#*-A}" != "$cspec" ]; then

# complete -A <type>

func=${cspec#*-A }

func=${func%% *}

COMPREPLY=( $( compgen -A $func $cur ) )

fi

else

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

fi

}


complete -o default -F _my_command nohup exec eval trace truss strace sotruss gdb

complete -o default -F _my_command command type which man nice


# Локальные переменные:

# mode:shell-script

# sh-shell:bash

# Конец:


Приложение H. Преобразование пакетных (*.bat) файлов DOS в сценарии командной оболочки

Большое число программистов начинало изучать скриптовые языки на PC, работающих под управлением DOS. Даже на этом "калеке" удавалось создавать неплохие сценарии, хотя это и требовало значительных усилий. Иногда еще возникает потребность в переносе пекетных файлов DOS на платформу UNIX, в виде сценариев командной оболочки. Обычно это не сложно, поскольку набор операторов, доступных в DOS, представляет из себя ограниченное подмножество эквивалентных команд, доступных в командной оболочке.

Таблица H-1. Ключевые слова/переменные/операторы пакетных файлов DOS и их аналоги командной оболочки

Операторы пакетных файлов Эквивалентные команды в UNIX Описание % $ префикс аргументов командной строки / - признак ключа (опции) \ / разделитель имен каталогов в пути == = (равно) сравнение строк !==! != (не равно) сравнение строк | | конвейер (канал) @ set +v не выводить текущую команду * * "шаблонный символ" в имени файла > > перенаправление (с удалением существующего файла) >> >> перенаправление (с добавлением в конец существующего файла) < < перенаправление ввода stdin %VAR% $VAR переменная окружения REM # комментарий NOT ! отрицание последующего условия NUL /dev/null "черная дыра" для того, чтобы "спрятать" вывод команды ECHO echo вывод (в Bash имеет большое число опций) ECHO. echo вывод пустой строки ECHO OFF set +v не выводить последующие команды FOR %%VAR IN (LIST) DO for var in [list]; do цикл "for" :LABEL эквивалент отсутствует (нет необходимости) метка GOTO эквивалент отсутствует (используйте функции) переход по заданной метке PAUSE sleep пауза, или ожидание, в течение заданного времени CHOICE case или select выбор из меню IF if условный оператор if IF EXIST FILENAME if [ -e filename ] проверка существования файла IF !%N==! if [ -z "$N" ] Проверка: параметр "N" отсутствует CALL source или . (оператор "точка") "подключение" другого сценария COMMAND /C source или . (оператор "точка") "подключение" другого сценария (то же, что и CALL) SET export установить переменную окружения SHIFT shift сдвиг списка аргументов уомандной строки влево SGN -lt или -gt знак (целого числа) ERRORLEVEL $? код завершения CON stdin "консоль" (stdin) PRN /dev/lp0 устройство принтера LPT1 /dev/lp0 устройство принтера COM1 /dev/ttyS0 первый последовательный порт

Пакетные файлы обычно содержат вызовы команд DOS. Они должны быть заменены эквивалентными командами UNIX.

Таблица H-2. Команды DOS и их эквиваленты в UNIX

Команды DOS Эквивалент в UNIX Описание ASSIGN ln ссылка на файл или каталог ATTRIB chmod изменить атрибуты файла (права доступа) CD cd сменить каталог CHDIR cd сменить каталог CLS clear очистить экран COMP diff, comm, cmp сравнить файлы COPY cp скопировать файл Ctl-C Ctl-C прервать исполнение сценария Ctl-Z Ctl-D EOF (конец-файла) DEL rm удалить файл(ы) DELTREE rm -rf удалить каталог с подкаталогами DIR ls -l вывести содержимое каталога ERASE rm удалить файл(ы) EXIT exit завершить текущий процесс FC comm, cmp сравнить файлы FIND grep найти строку в файлах MD mkdir создать каталог MKDIR mkdir создать каталог MORE more постраничный вывод MOVE mv переместить PATH $PATH путь поиска исполняемых файлов REN mv переименовать (переместить) RENAME mv переименовать (переместить) RD rmdir удалить каталог RMDIR rmdir удалить каталог SORT sort отсортировать файл TIME date вывести системное время TYPE cat вывести содержимое файла на stdout XCOPY cp (расширенная команда) скопировать файл

Фактически, команды и операторы командной оболочки UNIX имеют огромное количество дополнительных опций, расширяющих их функциональность, по сравнению с их эквивалентами в DOS. В большинстве своем, пакетные файлы DOS предполагают наличие вспомогательных утилит, таких как ask.com ("увечный" аналог UNIX-вого read).


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

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

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


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

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

Мендель Купер - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

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

А что Вы думаете о книге? Оставьте Ваш отзыв.