Stampare automaticamente i file messi in una cartella

Ieri per un amico mi sono ritrovato a dover scrivere uno script bash che messi dei file PDF,DOC,TXT si occupa in automatico di inviarli alla stampante predefinita in CUPS.
Sostamzialmente lo script una volta avviato non fa altro che provare ad intervalli di 10 secondi il comando ls, passarlo al grep così da filtrare i tipi di file e stamparli.

#!/bin/bash
 
INTERVAL=10
INTERVALTOREMOVE=2
echo
echo "Automated Printing Started."
echo
while [ 0 ]
do
	for elemento in $(ls $1 | grep ".*.pdf$\|.*.doc$\|.*.txt$")
	do
		lp $1$elemento
		sleep $INTERVALTOREMOVE
		rm $1$elemento
	done
   sleep $INTERVAL
done
exit 0

Per utilizzare lo script basta semplicemente avviarlo e come parametro passargli la cartella da monitorare, es. /home/Predator/

Se ti è stato utile il mio articolo, spendi un secondo del tuo tempo e dammi un +1, Google ed io ne saremmo felici 🙂 Grazie mille 🙂
Precedente Parser html con JavaCC Successivo Cambiare frequenza ai Wavecom Q24 Plus con comandi AT

4 commenti su “Stampare automaticamente i file messi in una cartella

  1. fabio il said:

    ciao cè un sistema per poter mandare in stampa automatica tutte le email in arrivo??

  2. Ciao Fabio,
    dovrebbe essere possibile 😉
    dimmi con che protocollo ti interessa accedere alla casella email (pop3,imap,…) che do un’occhiata e vedo se i posso fare uno script piccolino che faccia al caso tuo 😉

  3. Francesco il said:

    Ciao e scusami per l’ignoranza. Non ho mai programmato ed ho aperto il terminale su linux solo 5 volte, ma vorrei utilizzare il tuo script per stampare automaticamente i file che vengono messi in una cartella.
    Ho inserito il tuo script su vim ed ho salvato il file. Quando eseguo lo shell script appena salvato mi dice:
    “Automated Printing Started.

    sleep: operando mancante
    Try ‘sleep –help’ for more information”.
    Potresti spiegarmi cosa significa e come passare allo script, come parametro, la cartella da monitorare?
    Grazie e scusami ancora per l’ignoranza.

  4. Ciao Francesco, scusami ma solo ora mi sono accorto del tuo messaggio 🙁 credo e spero che oramai avrai già risolto senza il mio aiuto 😉

Lascia un commento

20 + 16 =

*

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.