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

Напишите сценарий, который находил бы корни "квадратного " уравнения, вида: Ax^2 + Bx + C = 0. Сценарий должен получать коэффициенты уравнения A, B и C, как аргументы командной строки, и находить корни, с точностью до четвертого знака после запятой.

Подсказка: воспользуйтесь bc, для нахождения решения по хорошо известной формуле: x = ( -B +/- sqrt( B^2 - 4AC ) ) / 2A.

Сумма чисел

Найдите сумму всех пятизначных чисел (в диапазоне 10000 - 99999), которые содержат точно две цифры из следующего набора: { 4, 5, 6 }.

Примеры чисел, удовлетворяющих данному условию: 42057, 74638 и 89515.

Счастливый билет

"Счастливым" считается такой билет, в котором последовательное сложение цифр номера дает число 7. Например, 62431 -- номер "счастливого" билета (6 + 2 + 4 + 3 + 1 = 16, 1 + 6 = 7). Найдите все "счастливые" номера, располагающиеся в диапазоне 1000 - 10000.

Синтаксический анализ

Проанализируйте файл /etc/passwd и выведите его содержимое в табличном виде.

Просмотр файла с данными

Некоторые базы данных и электронные таблицы используют формат CSV (comma-separated values), для хранения данных в файлах. Зачастую, эти файлы должны анализироваться другими приложениями.

Пусть файл содержит следующие данные:

Jones,Bill,235 S. Williams St.,Denver,CO,80221,(303) 244-7989

Smith,Tom,404 Polk Ave.,Los Angeles,CA,90003,(213) 879-5612

...

Прочитайте данные и выведите их на stdout в виде колонок с заголовками.

Выравнивание

Текст вводится с устройства stdin или из файла. Его необходимо вывести на stdout, с выравниванием по ширине, используя задаваемую пользователем ширину строк.

Список рассылки

Напишите сценарий, который использовал бы команду mail, для управления простым списком рассылки. Сценарий должен брать текст ежемесячного информационного бюллетеня из заданного файла, список адресатов из другого файла и выполнять рассылку новостей по электронной почте.

Пароли

Сгенерируйте псевдослучайные 8-ми символьные пароли, используя символы из диапазона [0-9], [A-Z], [a-z]. Каждый пароль должен содержать не менее 2-х цифр.

Сложные задания

Регистрация обращений к файлам

Попробуйте отследить все попытки обращения к файлам в каталоге /etc, в течение дня. Сведения, которые включают в себя время обращения, имя файла, имя пользователя (если имели место какие либо изменения в файлах, то они тоже должны быть отмечены), запишите в виде аккуратно отформатированных записей в логфайл.

Удаление комментариев

Удалите все комментарии из сценария, имя которого задается с командной строки. При этом, строка "#! /bin/bash" не должна удаляться.

Преобразование в HTML

Преобразуйте заданный текстовый файл в HTML формат. Этот сценарий должен автоматически вставлять необходимые теги HTML в тело файла.

Удаление тегов HTML

Удалите все теги HTML из заданного HTML файла, затем переформатируйте его так, чтобы строки не были короче 60 и длиннее 75 символов. Предусмотрите оформление параграфов. Преобразуйте таблицы HTML в их приблизительный текстовый эквивалент.

Преобразование XML файлов

Преобразуйте файл из формата XML в формат HTML и в простой текстовый файл.

Борьба со спамом

Напишите сценарий, который анализировал бы входящие почтовые сообщения на принадлежность к спаму и отыскивал бы в DNS имена узлов сети, по IP адресам из заголовка письма. Сценарий должен отправлять найденые спамерские сообщения ответственным за спам провайдерам (ISP). Естественно, вы должны отфильтровать свой собственный IP адрес, чтобы не случилось так, что вы жалуетесь на самого себя.

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

Азбука Морзе

Преобразуйте текстовый файл в код Морзе. Символы из файла должны быть представлены в виде, соответствующих им, кодов Морзе, состоящих из точек и тире, и разделенных пробелами. Например, "script" ===> "... _._. ._. .. .__. _".

Шестнадцатиричный дамп

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

Эмуляция сдвигового регистра

Используя Пример 25-9, как образец, напишите сценарий, который эмулировал бы 64-х битный сдвиговый регистр в виде массива. Реализуйте функции загрузки значения в регистр, сдвиг влево и сдвиг вправо. В заключение, напишите функцию, которая интерпретировала бы содержимое "регистра" как восемь 8-ми битных символов ASCII.

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

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

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

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

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

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

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

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

Финансы / Программирование, программы, базы данных