성공할 때까지 인쇄 명령 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그것을 평가하고 거기에 하나를 두는 것이 좋습니다 .

관련 정보