成功するまで印刷コマンド LP を続行します。

成功するまで印刷コマンド LP を続行します。

印刷が成功するまで、プリンタの印刷コマンドを送信し続けたいと思います。印刷が成功したら、ファイルを削除する必要があります。

以下は私のスクリプトです。

until ssh [email protected] 'lp -d Brother_HL_L2350DW_series $FILE'
do
  echo "Deleting $FILE"
  rm $FILE; 
done

問題は、rm $FILE;印刷コマンドがlp -d Brother_HL_L2350DW_series $FILE失敗してもファイルを削除することです。

以下は、失敗した印刷コマンドの例です。

ssh root@remotehost 'lp -d Brother_HL_L2350DW_series /home/system/test8.pdf'

lp: Transport endpoint is not connected

[system@live send4print]$ echo $?
1

私の要件を満たす方法を提案できますか?

答え1

繰り返しがどのように機能するのかわかりません。

あなたのスクリプトは次のように言います:

Until successful:
  print stuff, and delete files
until ssh [email protected] 'lp -d Brother_HL_L2350DW_series $FILE'
do
  echo "trying again"
done

echo "Deleting $FILE"
rm $FILE; 

他に問題があるようです。

  • FILEは大文字です(潜在的なエラー:大文字は予約されているため使用しないでください)。
  • 引用の問題は$FILEもはや拡張されません。
  • sleepそれを評価し、そこに1つを置くことをお勧めします。

関連情報