Files
mastering-unix-ss/chapter25/function_Solaris_printing
Fabio Scotto di Santolo 4cc88d2f6e initial commit
2020-07-28 19:28:25 +02:00

45 lines
1.2 KiB
Plaintext
Executable File

function Solaris_printing
{
LOOP=0 # Loop Counter - To grab three lines at a time
lpc status all | egrep ':|printing|queueing' | while read LINE
do
# Load three unique lines at a time
case $LINE in
*:) Q=$(echo $LINE | cut -d ':' -f1)
;;
printing*)
PSTATUS=$(echo $LINE | awk '{print $3}')
;;
queueing*)
QSTATUS=$(echo $LINE | awk '{print $3}')
;;
esac
# Increment the LOOP counter
(( LOOP = LOOP + 1 ))
if ((LOOP == 3)) # Do we have all three lines of data?
then
# Check printing status
case $PSTATUS in
disabled) lpc start $Q >/dev/null
(($? == 0)) && echo "\n$Q printing re-started\n"
;;
enabled|*) : # No-Op - Do Nothing
;;
esac
# Check queuing status
case $QSTATUS in
disabled) lpc enable $Q >/dev/null
(($? == 0)) && echo "\n$Q queueing re-enabled\n"
;;
enabled|*) : # No-Op - Do Nothing
;;
esac
LOOP=0 # Reset the loop counter to zero
fi
done
}