# Script bash pour l'impression

**URL:** <https://www.debian-fr.org/t/script-bash-pour-limpression/61378>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 7:58 UTC](https://www.debian-fr.org/t/script-bash-pour-limpression/61378 "2016-02-21T19:58:01Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Torlik](https://www.debian-fr.org/user_avatar/www.debian-fr.org/torlik/32/3141_2.png) [@Torlik](https://www.debian-fr.org/u/Torlik)\
**Post date:** [Février 21, 2016, 7:58 UTC](https://www.debian-fr.org/t/script-bash-pour-limpression/61378/1 "2016-02-21T19:58:01Z")

</div>

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 «&nbsp;Que veux-tu faire ?&nbsp;»  
echo -e «&nbsp;-------------------&nbsp;»  
echo -e «&nbsp;0: Imprimer un fichier&nbsp;»  
echo -e «&nbsp;1: Visualiser la file d’impression&nbsp;»  
echo -e «&nbsp;2: Voir des informations sur l’état et la file d’attente&nbsp;»  
echo -e «&nbsp;3: Annuler impression&nbsp;»

read choix

if [«&nbsp;$choix&nbsp;» -ge «&nbsp;4&nbsp;»];  
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 ![:006](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif "salut")

edit : pour cancel :  
lpstat -t | awk ‹&nbsp;{print $3}&nbsp;› | grep -e ‹&nbsp;|[0-9]&nbsp;›

je n’arrive pas à faire en sorte de n’affiche QUE les nombres et éliminer ceux qui sont «&nbsp;entourés&nbsp;» de texte (pour ne pas prendre en compte les imprimantes par ex : Canon-C325)

edit2 : voilà 🙂  
lpstat -t | awk ‹&nbsp;{print $3}&nbsp;› | sed ‹&nbsp;/[a-z][a-Z]/d&nbsp;›

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 «&nbsp;voilà la liste&nbsp;»  
echo -e «&nbsp;sqsdsq&nbsp;»\n  
echo -e «&nbsp;sdqsdq&nbsp;»)

echo $cancel[/code]

du coup je vois pas comment réaliser la chose ?

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Février 21, 2016, 7:58 UTC](https://www.debian-fr.org/t/script-bash-pour-limpression/61378/2 "2016-02-21T19:58:04Z")

</div>

Je ne répond pas a ta question mais je te conseil de regarder la commande [mono]getops[/mono] et [mono]getop[/mono], ça te permettra de gérer plusieurs options a la fois
