1

私の英語でごめんなさい!

私はDebiansqueezeを使用しており、割り当てのために、2つの仮想pdfカッププリンターを作成しました。どちらも非常にうまく機能しています。別の管理コマンドをテストするには; プリンタの1つを無効にして、キューファイルを2番目のプリンタに移動しようとしています。簡単にできます。

ここで、プリンターのステータスをテストするbashスクリプトを作成したいと思います。そのため、プリンタが無効になっている場合は、「移動」スクリプトを実行するだけです。カッププリンターのステータスを知り、その情報をスクリプトで使用する方法はありますか?

たとえば、「O」を返すことができるコマンド/関数は、cupsプリンターが有効になっている場合、「1」が有効になっていない場合です。

ご協力いただきありがとうございます、

4

1 に答える 1

1

Andrei が述べたように、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

プリンターの 1 つに問題があると、「アイドル」テキストが変わります。必要な出力が得られるまで、仮想プリンターの状態を試してみることをお勧めします。あなたの bash スクリプトには、次のようなものが必要かもしれません:

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

この一連のコマンドは、プリンターがアイドル状態または印刷状態にあるかどうかをテストし、そうでない場合は終了コード 1 を生成します。そうでない場合は、終了コード 0 を生成します。プリンターの名前と使用可能な状態をプロジェクトのニーズに合わせて調整します。

于 2011-01-28T03:55:19.177 に答える