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

Команды DOSЭквивалент в UNIXОписание
ASSIGNlnссылка на файл или каталог
ATTRIBchmodизменить атрибуты файла (права доступа)
CDcdсменить каталог
CHDIRcdсменить каталог
CLSclearочистить экран
COMPdiff, comm, cmpсравнить файлы
COPYcpскопировать файл
Ctl-CCtl-Cпрервать исполнение сценария
Ctl-ZCtl-DEOF (конец-файла)
DELrmудалить файл(ы)
DELTREErm -rfудалить каталог с подкаталогами
DIRls -lвывести содержимое каталога
ERASErmудалить файл(ы)
EXITexitзавершить текущий процесс
FCcomm, cmpсравнить файлы
FINDgrepнайти строку в файлах
MDmkdirсоздать каталог
MKDIRmkdirсоздать каталог
MOREmoreпостраничный вывод
MOVEmvпереместить
PATH$PATHпуть поиска исполняемых файлов
RENmvпереименовать (переместить)
RENAMEmvпереименовать (переместить)
RDrmdirудалить каталог
RMDIRrmdirудалить каталог
SORTsortотсортировать файл
TIMEdateвывести системное время
TYPEcatвывести содержимое файла на stdout
XCOPYcp(расширенная команда) скопировать файл

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

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

Преобразование пакетных файлов DOS в сценарии командной оболочки, обычно не вызывает затруднений, а результат такого преобразования читается гораздо лучше, чем оригинал.

Пример H-1. VIEWDATA.BAT: пакетный файл DOS

REM VIEWDATA


REM INSPIRED BY AN EXAMPLE IN "DOS POWERTOOLS"

REM BY PAUL SOMERSON


@ECHO OFF


IF !%1==! GOTO VIEWDATA

REM IF NO COMMAND-LINE ARG...

FIND "%1" C:\BOZO\BOOKLIST.TXT

GOTO EXIT0

REM PRINT LINE WITH STRING MATCH, THEN EXIT.


:VIEWDATA

TYPE C:\BOZO\BOOKLIST.TXT | MORE

REM SHOW ENTIRE FILE, 1 PAGE AT A TIME.


:EXIT0

Результат преобразования в сценарий командной оболочки, немного улучшенный.

Пример H-2. viewdata.sh: Результат преобразования VIEWDATA.BAT в сценарий командной оболочки

#!/bin/bash

# Результат преобразования пакетного файла VIEWDATA.BAT в сценарий командной оболочки.


DATAFILE=/home/bozo/datafiles/book-collection.data

ARGNO=1


# @ECHO OFF Эта команда здесь не нужна.


if [ $# -lt "$ARGNO" ] # IF !%1==! GOTO VIEWDATA

then

less $DATAFILE # TYPE C:\MYDIR\BOOKLIST.TXT | MORE

else

grep "$1" $DATAFILE # FIND "%1" C:\MYDIR\BOOKLIST.TXT

fi


exit 0 # :EXIT0


# операторы перехода GOTO, метки и прочий "мусор" больше не нужны.

# Результат преобразования стал короче, чище и понятнее,

На сайте Тэда Дэвиса (Ted Davis) Shell Scripts on the PC, вы найдете большое число руководств по созданию пакетных файлов в DOS. Определенно, его изобретательность будет вам полезна, при создании ваших сценариев.

Приложение I. Упражнения

I.1. Анализ сценариев

Просмотрите следующие сценарии. Попробуйте запустить их, затем объясните -- что они делают. Расставьте комментарии, затем попробуйте записать их в более компактном виде.

#!/bin/bash


MAX=10000


for((nr=1; nr<$MAX; nr++))

do


let "t1 = nr % 5"

if [ "$t1" -ne 3 ]

then

continue

fi


let "t2 = nr % 7"

if [ "$t2" -ne 4 ]

then

continue

fi


let "t3 = nr % 9"

if [ "$t3" -ne 5 ]

then

continue

fi


break # Что произойдет, если закомментировать эту строку? Почему?


done


echo "Число = $nr"


exit 0


---

Читатель прислал следующий кусок кода.

while read LINE

do

echo $LINE

done < `tail -f /var/log/messages`

Он предполагал написать сценарий, который отслеживал бы изменения в системном журнале /var/log/messages. К сожалению, этот код "зависает" и не делает ничего полезного. Почему? Найдите ошибку и исправьте ее (подсказка: вместо операции перенаправления stdin в цикл, попробуйте использовать конвейерную обработку).

---

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

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

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT