2010-10-15 53 views
1

对不起,我的英语!无法检查Debian Squeeze中的杯状打印机状态

我正在使用Debian挤压和分配,我已创建2个虚拟PDF杯打印机。两者都工作得很好。 测试不同的管理命令;我尝试禁用打印机之一并将其队列文件移动到第二个。我能够轻松地做到这一点。

现在,我想编写一个测试打印机状态的bash脚本。因此,如果打印机被禁用,则只需执行“移动”脚本。 有没有办法知道杯状打印机的状态并在脚本中使用该信息?

例如,可以返回“O”的命令/功能是打印机启用,如果不是,则打印机打印机为“1”。

感谢您的帮助,

+0

您是否尝试过使用lpstat命令? – 2011-01-08 12:35:14

回答

1

正如安德烈提到的,你应该能够使用lpstat命令来处理这个问题。具体来说,尝试解析的输出:

lpstat -p 

在正常情况下,你会得到这样的:

printer HP_DESKJET_940C is idle. enabled since Mon 09 Aug 2010 10:42:20 PM CDT 
printer HP_LaserJet_1012 is idle. enabled since Mon 09 Aug 2010 10:36:26 PM CDT 

当事情是错误的打印机之一,“闲置”文本将改变。我建议玩虚拟打印机的状态,直到你得到你想要的输出。为了您的bash脚本,也许你想是这样的:

lpstat -p | grep -E 'HP_DESKJET.*\(idle|printing\)' >/dev/null || false 

命令序列将测试你的打印机是否处于闲置或打印状态,如果不是,那么就会产生退出代码1.否则,它将产生0的退出码。当然,您将需要调整打印机的名称和可用状态以满足项目需求。