gpt4 book ai didi

shell - GhostScript 和文件名中的空格

转载 作者:行者123 更新时间:2023-12-04 16:16:26 26 4
gpt4 key购买 nike

我在 GhostScript 接受文件名的 shell 脚本变量时遇到问题,如果这些文件名中有空格。

gs -dPDFX -dNOPAUSE -dBATCH -dNOOUTERSAVE -sDEVICE=pdfwrite -sOutputFile="${filename}" -sColorConversionStrategy=CMYK -dProcessColorModel=/DeviceCMYK -dCompatibilityLevel=1.4  "${f}" /usr/local/share/ghostscript/9.20/lib/PDFX_def.ps

如果文件名有空格,那么 GS 会说“没有这样的文件”,给出的名称为:

path/to/file/partial\

(注意最后的反斜杠。)

我也得到:错误:/undefinedfilename in (/Users/Ben/Desktop/qwe\\qwe.pdf)

字面意义上的逃跑。我不敢相信这样一个受人尊敬的软件有如此重大的失败,尽管其他人似乎也有同样的问题,但没有任何重要的解决方案。我可以对我的脚本做些什么吗?

我使用的是 MacOS 10.11 和 12。哦,“没有空格”不是解决方案。 ;-)

更新:即使是最简单的示例也会显示错误:

> f="/Users/Ben/Desktop/qwe\ qwe.pdf"
> gs "$f"
GPL Ghostscript 9.20 (2016-09-26)
Copyright (C) 2016 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Error: /undefinedfilename in (/Users/Ben/Desktop/qwe\\ qwe.pdf)

最佳答案

我想我已经修好了。似乎 GhostScript 没有正确处理转义字符,而是按字面解释它们。因此,您(我)需要通过从文件路径中删除所有反斜杠来清理输入。

 filename=${filename//\\}

再一次,非常奇怪,这么古老的软件竟然有这样的错误。

关于shell - GhostScript 和文件名中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42578061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com