字符串中的双引号

时间:2016-08-28 13:30:17

标签: elixir

我有以下shell声明:

kotlinc AimToTen.kt

并希望使用gs -q -dNODISPLAY -c "(/Users/developer/Desktop/1449367569_Concurrency.pdf) (r) file runpdfbegin pdfpagecount = quit" 函数在elixir中执行。我尝试了如下:

system.cmd

但它根本不起作用。输出什么都没有。

1 个答案:

答案 0 :(得分:1)

在您发布的原始命令中,shell将4个参数传递给gs

-q
-dNODISPLAY
-c
(/Users/developer/Desktop/1449367569_Concurrency.pdf) (r) file runpdfbegin pdfpagecount = quit

(/Users/developer/Desktop/1449367569_Concurrency.pdf) (r) file runpdfbegin pdfpagecount = quit周围的双引号未传递给gs;它只是shell语法的一部分,对于想要在参数中包含空格字符时非常有用。例如,echo "foo"只打印foo,而不是"foo"

所以你需要将-c和其余的分成不同的字符串,而不是在最后一个参数中包含双引号:

System.cmd("gs", ["-q", "-dNODISPLAY", "-c", "(/Users/developer/Desktop/1449367569_Concurrency.pdf) (r) file runpdfbegin pdfpagecount = quit"])