我希望继续发送打印机打印命令,直到打印成功。如果打印成功,则应删除该文件。
下面是我的脚本。
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
在那里放一个。