#!/bin/bash # # Skrypt do wydruku na lokalnym terminalu, np. PuTTY # PATH=/bin:/usr/bin TTY=`tty` COMM_START='' COMM_STOP='' STTY=`stty -g` if [ `uname` = 'Linux' ] ; then ECHO="echo -en" else ECHO="echo -n" fi FILTR_LFCR=/usr/bin/filtr if [ ! -x $FILTR_LFCR ] ; then echo echo "Nie ma skryptu $FILTR_LFCR lub nie ma on atrybutu wykonywalnosci -x" echo "Nacisnij ..." read ASK exit 1 fi case $TERM in "vt220-tres"|"fslinux"|"linux"|"console") COMM_START=\\033[5i COMM_STOP=\\033[4i;; "wyse60"|"wy60") COMM_START=\\033d# COMM_STOP=\\024;; *) echo "Nieznany typ terminala: $TERM. ">&2 exit 1;; esac if [ $# -lt 1 ] ; then echo "Uzycie: $0 [-t terminal] [-u uzytkownik] nazwa_pliku_do_drukowania" exit 1 else while [ $# -gt 0 ] ; do case $1 in -t) shift 1 TTY=$1 if [ ! -w $TTY ] ; then echo "Plik $TTY nie istnieje lub prak praw zapisu" exit 1 fi;; -u) shift 1 TTY=`who|sed -n "/^$1 /s/[^ ]* *\([^ ]*\).*/\1/p"|head -n 1` if [ ! -w $TTY ] ; then TTY=/dev/$TTY if [ ! -w $TTY ] ; then echo "Plik $TTY nie istnieje lub brak praw zapisu" exit 1 fi fi;; *) $ECHO $COMM_START>$TTY stty -opost # 1. konwersja LF na LFCR # 2. konwerja PL-znakow na inny standard # LAT (CP852), ISO (iso-8859-2), WIN (CP1250) # Trawers uzywa wewnetrznie LAT. #cat $1 | $FILTR_LFCR | plconv LAT ISO > $TTY cat "$1" | $FILTR_LFCR > $TTY stty $STTY $ECHO $COMM_STOP>$TTY;; esac shift 1 done fi # koniec