Руководство по Bash для начинающих
Назад Глава 8: Пишем интерактивные скрипты Вперед

Подводим итог

В этой главе мы узнали, как предоставлять пользователю комментарии и как выдавать ему приглашение на ввод данных. Обычно это делается с помощью комбинации команд echo/read. Мы также обсудили, как с помощью дескрипторов файлов и перенаправлений можно использовать файлы для ввода и вывода данных, и как это можно совместить с получением данных, вводимых пользователем.

Мы подчеркнули важность предоставления в наших скриптах сообщений для пользователей. И, как во всех других ситуациях, лучше дать слишком много информации, чем ее окажется мало. Для создания списков, в которых будут храниться варианты, выбираемые пользователями можно использовать встраиваемые документы (Here documents). Этой конструкцией также можно пользоваться в случае, когда скрипт выполняется в фоновом режиме без вмешательства пользователя.

Упражнения

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

  1. Напишите скрипт, который спрашивает у пользователя его возраст. Если возраст равен или больше 16, выдайте сообщение о том, что ему разрешено употреблять алкоголь. Если возраст пользователя меньше 16, выдайте сообщение о том, сколько лет ему надо ждать прежде, чем ему юридически будет разрешено пить.

    В качестве дополнения рассчитайте, сколько по статистике уже выпил пива пользователь, которому больше 18 лет (из расчета - 100 литров / год), и выдайте пользователю эту информацию.

  2. Напишите скрипт, у которого в качестве аргумента указывается один файл. Используйте методику встраиваемых документов (here document) и предложите пользователю выбрать один из нескольких вариантов сжатия файлов. В качестве вариантов выбора могут быть gzip, bzip2, compress и zip.
  3. Напишите скрипт, который автоматизирует использование команды tar так, чтобы человек, исполняющий скрипт, когда он делает резервную копию своего домашнего директория, всегда при создании резервной копии использовал правильные параметры (cvp) и правильный директорий (/var/backups). Реализуйте следующие возможности:

    Смотрите дополнительную информацию с помощью команды info tar или в книге "Introduction to Linux" ("Введение в Linux") в главе 9 "Preparing your data" ("Подготовка ваших данных").

  4. Напишите скрипт, который будет называться simple-useradd.sh и будет добавлять в систему локального пользователя. Этот скрипт должен делать следующее:

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


Предыдущий раздел: Оглавление Следующий раздел:
Получение данных, вводимых пользователем   Глава 9