继续尝试打印命令 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在那里放一个。

相关内容