Страница lpr
man говорит, что конечный принтер может быть указан с -P
флагом.
-P destination[/instance] Prints files to the named printer.
Я «добавил» различные принтеры на локальные ресурсы Samba, используя графический интерфейс в Ubuntu / Gnome. Как я могу получить список этих доступных принтеров в формате, который -P
ожидает флаг (предпочтительно из оболочки bash)?
lpq
работает тоже.lpoptions -d printername
Чтобы получить список вы можете использовать:
или же
Чтобы распечатать только имена принтеров:
lpstat + read + array:
lpstat + awk:
lpstat + cut:
кошка + grep + врезать
/etc/printcap
:Вот что показано, по одному на строку:
Я чувствую, что
lpstat
решения более элегантные и надежные. В основном потому, что/etc/printcap
не было найдено в некоторых системах, которые я тестировал.Об использовании
awk
илиcut
зависит от того, что вы установили и предпочитаете. Опция bash read + bash array должна работать на любой оболочке bash без необходимости внешних операций.РЕДАКТИРОВАТЬ: Я сказал, что отмеченное решение не работает для меня на Amazon Linux. Но я думаю, это работает, если вы просто хотите скопировать имена принтеров из середины остальной части вывода. Работает так же, как использование просто
lpstat -a
.источник
lpstat -p -d
How can I get a list of these available printers in the format that the (lpr) -P flag expects
. Мой примерlpstat -p -d
ясно показывает, что вы получаете больше, чем просто имя принтера с этим. В этом случае вы не можете использовать этот выход дляlpr -P $PRINTERNAME
вызова. Так что нет!lpstat -p -d
не работает в приведенном мной примере.