Строка request id is PrinterQueue-68 (1 file(s))
- это то, что команда lp
печатает , а не то, что возвращает .
Если команда lp
завершится неудачно, она вернет ненулевой статус выхода. (Следует также напечатать сообщение об ошибке, но эти сообщения не обязательно документированы и могут меняться от одной версии к другой.)
Насколько я понимаю, вы можете запросить значение $?
после вызова команды с помощью обратных галочек. Если команда выполнена успешно, $?
должно быть 0. В случае неудачи она будет иметь ненулевое значение.
В комментарии @muistooshort предлагает использовать open3
; это, вероятно, более надежно и гибко, чем использование обратных кавычек.