La lpr
page de manuel indique qu'une imprimante de destination peut être spécifiée avec l' -P
indicateur.
-P destination[/instance] Prints files to the named printer.
J'ai «ajouté» diverses imprimantes sur des partages Samba locaux à l'aide de l'interface graphique d'Ubuntu / Gnome. Comment puis-je obtenir une liste de ces imprimantes disponibles dans le format attendu par le -P
drapeau (de préférence à partir d'un shell bash)?
lpq
marche aussi.lpoptions -d printername
Pour obtenir une liste, vous pouvez utiliser:
ou
Pour imprimer uniquement les noms d'imprimante:
lpstat + read + array:
lpstat + awk:
lpstat + cut:
chat + grep + coupé dans
/etc/printcap
:Voici ce qui est montré, un par ligne:
J'ai l'impression que les
lpstat
solutions sont plus élégantes et fiables. Principalement parce que/etc/printcap
n'a pas été trouvé sur certains systèmes que j'ai testés.L'utilisation de
awk
oucut
dépend de ce que vous avez installé et que vous préférez. L'option de tableau bash read + bash devrait fonctionner sur n'importe quel shell bash sans recourir à des ressources externes.EDIT: J'ai dit que la solution marquée ne fonctionnait pas pour moi sur Amazon Linux. Mais je suppose que cela fonctionne si vous voulez simplement copier les noms d’imprimante du milieu du reste de la sortie. Fonctionne comme si vous utilisiez juste
lpstat -a
.la source
lpstat -p -d
semble fonctionner…How can I get a list of these available printers in the format that the (lpr) -P flag expects
. Mon exemplelpstat -p -d
montre clairement que vous obtenez plus que le nom de l’imprimante. Dans ce cas, vous ne pouvez pas utiliser cette sortie pour unlpr -P $PRINTERNAME
appel. Donc non!lpstat -p -d
ne fonctionne pas dans l'exemple que j'ai donné.