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 ?