Salut,
Pour le fun (et aussi ça me permettra ne pas retenir ces commandes… et améliorer mon niveau en scripting
) je suis en train de me faire un script bash pour gérer le spooler.
[code]#!/bin/bash
echo -e « Que veux-tu faire ? »
echo -e « ------------------- »
echo -e « 0: Imprimer un fichier »
echo -e « 1: Visualiser la file d’impression »
echo -e « 2: Voir des informations sur l’état et la file d’attente »
echo -e « 3: Annuler impression »
read choix
if [ « $choix » -ge « 4 » ];
then
echo " pas bon "
else
case $choix in
0) lp -dIMP ;; #coder ça
1) lpq ;;
2) lpstat -t ;;
3) cancel ;; # coder ça
esac
fi[/code]
voilà donc avant de m’amuser à gérer d’éventuelles erreurs, j’aimerais coder le choix 0 et 3
si l’utilisateur choisi 0 :
lp -dNOMDELIMPRIMANTE /document/a/imprimer
quand je fais lp -d et que je fais tab , je peux choisir mon imprimante puis faire espace et choisir le doc toujours avec tab. Donc soit :
1 - le script lance lp -d et après je peux me débrouiller seul avec tab
2 - soit plus fun, il me demande quelle imprimante puis quel fichier
Pour l’option 3 (cancel), il faudrait récupérer la liste avec lpstat et ensuite la proposer.
Voilà donc je ne cherche pas la solution mais que quelqu’un m’explique la démarche.
Merci par avance ![]()
edit : pour cancel :
lpstat -t | awk ‹ {print $3} › | grep -e ‹ |[0-9] ›
je n’arrive pas à faire en sorte de n’affiche QUE les nombres et éliminer ceux qui sont « entourés » de texte (pour ne pas prendre en compte les imprimantes par ex : Canon-C325)
edit2 : voilà ![]()
lpstat -t | awk ‹ {print $3} › | sed ‹ /[a-z][a-Z]/d ›
donc ce que je voudrais maintenant :
Si on choisit l’option 3 →
ça affiche les jobs possibles
on choisit le ou les jobs
puis le script lance : cancel #jobid
mais du coup je n’arrive pas à afficher plusieurs choses dans une variable :
[code]cancel=(echo « voilà la liste »
echo -e « sqsdsq »\n
echo -e « sdqsdq »)
echo $cancel[/code]
du coup je vois pas comment réaliser la chose ?