Скрипт: вставка данных в начало потока (дополнительные команды перед lpr)

Итак, упомянутый ранее скрипт. Используется как обычная команда lpr. Отличается тем, что предварительно посылает на принтер команды выбора лотка в зависимости от пользователя, отправившего задание на печать. Затем отправляется само задание и некие заключительные команды, если нужно. Четыре лотка распределены между пользователями username1...username8. Задания всех остальных пользователей отправляются в лоток по умолчанию.

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

#!/bin/bash

case $USER in
 username1 | username2 )
  SELECT_BIN="Команда выбора 1-го лотка"
  ;;
 username3 | username4 )
  SELECT_BIN="Команда выбора 2-го лотка"
  ;;
 username5 | username6 )
  SELECT_BIN="Команда выбора 3-го лотка"
  ;;
 username7 | username8 )
  SELECT_BIN="Команда выбора 4-го лотка"
  ;;
 * )
  SELECT_BIN="Команда выбора лотка по умолчанию"
  ;;
esac

(echo "Предварительные команды, например, начало PJL"; \
 echo "Еще какие-нибудь предварительные команды"; \
 echo $SELECT_BIN; \
 echo "Если нужно — еще команды, например, переключение на обычный PCL"; \
 tee; \
 echo "Заключительные команды") | lpr $1

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *