我正在尝试获取一个在sh shell中工作的shell脚本,以作为一个Apple脚本执行shell脚本命令。该脚本只需要一系列elp2命令并将它们传送给lpr进行打印。这在直接输入shell时有效,但在AppleScript中运行时不会打印。打印机正在接收数据,但未正确格式化,因此无法打印。我认为问题在于报价被转义的方式。这是代码:
do shell script "{ echo N
echo OD10
echo q812
echo Q1218,24
echo D15
echo ZT
echo A70,40,0,5,3,3,N,\\'F\\'
echo A610,70,0,3,1,1,N,\\'U.S.\\'
echo A590,95,0,3,1,1,N,\\'POSTAGE\\'
echo A580,120,0,3,1,1,N,\\'REQUIRED\\'
echo A43,240,0,4,2,1,N,\\'USPS FIRST-CLASS MAIL\\'
echo A43,300,0,3,1,1,N,\\'Name\\'
echo A43,325,0,3,1,1,N,\\'street\\'
echo A43,350,0,3,1,1,N,\\'city, VA 12345\\'
echo A43,400,0,3,1,1,N,\\'ADDRESS SERVICE REQUESTED\\'
echo A140,490,0,4,1,1,N,\\'ship to\\'
echo A140,520,0,4,1,1,N,\\'company\\'
echo A140,550,0,4,1,1,N,\\'address\\'
echo A140,580,0,4,1,1,N,\\'city, state, 12345\\'
echo A140,610,0,4,1,1,N,\\'country\\'
echo A140,640,0,4,1,1,N,\\'\\'
echo LO10,10,760,4
echo LO10,210,760,2
echo LO10,275,760,2
echo LO10,750,760,10
echo LO10,1050,760,10
echo LO10,1185,760,4
echo LO10,10,4,1175
echo LO770,10,4,1175
echo LO210,10,2,200
echo LO540,45,200,2
echo LO540,45,2,125
echo LO540,170,200,2
echo LO740,45,2,125
echo P1
echo N;} | lpr -P Label -o raw"
答案 0 :(得分:2)
您可以检查如何在AppleScript中编写内容的一种方法是将正常的非转义文本写入文本文件。然后你把文件读成AppleScript。您在结果字段中看到的是您应该如何编写它。然后,您可以将结果复制/粘贴到AppleScript中。
例如,如果我在我的桌面上创建一个名为myText.txt的文本文件,其中包含...
echo A70,40,0,5,3,3,N,\'F\'
echo A610,70,0,3,1,1,N,\'U.S.\'
然后我用这个苹果...
set f to (path to desktop as text) & "myText.txt"
read file f
我的结果是......
"echo A70,40,0,5,3,3,N,\\'F\\'
echo A610,70,0,3,1,1,N,\\'U.S.\\'"
因此,请尝试使用整个代码尝试该技术。祝你好运。