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

标签 linux eval

我正在使用 Linux 命令,该命令使用 Ghostscript 将 pdf 从 100% 缩放到 90% 缩放。此命令在 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\""

最佳答案

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"

我还没有对此进行测试,但从肉眼看来,它看起来是正确的。

关于linux - 我遇到双引号和 eval 命令的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24688991/

相关文章:

linux - 尽管连接有效,但 Visual Studio 远程 Linux 项目编译导致错误 MSB4044

linux - 用 whiptail 显示一个变量

linux - 最近编译器的哪些更改导致这个半遗留 C++ 项目停止编译?

jquery - jQuery 中有等效的 eval() 吗?

python - 类型错误 : eval() arg 1 must be a string, 字节或代码对象

c++ - 如何在最后一个子 fork() 下打印一次子进程及其名称和 pid

c++ - 具有相互独立线程的多线程开销

javascript - 数组到字符串的转换不起作用

asp.net - 如何在三元运算符中使用 ASP.NET Eval() 函数?

java - 从 R (Renjin) 中的字符串表达式获取变量名称