我遇到双引号和eval命令的问题

时间:2014-07-11 01:49:38

标签: linux eval

我正在使用Linux命令,使用ghostscript从100%缩放到90%缩放缩小pdf。此命令在Linux提示符下正常工作:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=sam1.pdf -c "<< /BeginPage{0.9 0.9 scale 30.6 39.6 translate}>> setpagedevice" -sPAPERSIZE=letter -dCompatibilityLevel="1.3" -dPDFSETTINGS="/printer" -dSubsetFonts=true -dEmbedAllFonts=true -f 2138WH.pdf 

但是,我正在尝试将其编码为来自他们的ERP软件(在SCO盒上运行)的调用,该调用需要在Linux机器上运行代码。我正在努力使用引号,双引号等。我已经尝试在每个引号前放一个没有运气。我想我需要使用eval命令,但我不确定。有什么想法需要做什么?这是我所做的最新改变:

eval ssh root@linux \""cd /submittals;gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=/submittals/012606-003e.pdf -c \""<</BeginPage{0.9 0.9 scale 30.6 39.6 translate}>> setpagedevice\"" -sPAPERSIZE=letter -dCompatibilityLevel=\""1.3\"" -dPDFSETTINGS=\""/printer\"" -dSubsetFonts=true -dEmbedAllFonts=true -f /submittals/012606-003b.pdf\""

1 个答案:

答案 0 :(得分:0)

eval是不必要的,也是无益的(在这种情况下),因为它为你的问题增加了一层额外的dequoting。

ssh root@linux "cd /submittals;gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=/submittals/012606-003e.pdf -c \"<</BeginPage{0.9 0.9 scale 30.6 39.6 translate}>> setpagedevice\" -sPAPERSIZE=letter -dCompatibilityLevel=\"1.3\" -dPDFSETTINGS=\"/printer\" -dSubsetFonts=true -dEmbedAllFonts=true -f /submittals/012606-003b.pdf"

我还没有对此进行测试,但通过眼睛看起来是正确的。