ファイル名に空白が含まれている場合、GhostScriptがファイル名のシェルスクリプト変数を受け入れることに問題があります。ファイル名にスペースがある場合、GSは "そのようなファイルを" 言わないファイル名にGhostScriptとスペースがあります
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
、として名前を与える:
path/to/file/partial\
(最終バックスラッシュに注意してください)
私は」また、次のようになります。 Error: /undefinedfilename in (/Users/Ben/Desktop/qwe\\ qwe.pdf)
文字通りエスケープしています。私は、このような尊敬すべきソフトウェアは、このような大きな失敗を抱えているとは思えませんが、他の人たちも同じ問題を抱えているようです。スクリプトに何かできることはありますか?
私はMacOS 10.11および12です。 ああ、「スペースがありません」は解決策ではありません。 ;-)
UPDATE:でも非常に最も簡単な例では、エラーを示しています
> 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)
ファイル名のまわりに置く必要がありますが、あなたのシェルスクリプトがそれらを剥ぎ取っていると思われます。コマンドラインから試してみてください。 – KenS
それは私がすでにやったことではありませんか? – benwiggy
GhostScriptはエスケープバックスラッシュを好まないようです。スペースを "エスケープされていない"ままにして、バックスラッシュを削除すると、それは機能します。 bashにエスケープ文字をファイル・ストリングに入れないようにするにはどうすればよいですか? – benwiggy