• 締切済み

スクリプト:LinuxでOK, CygwinでNG

はまってしまったため、皆様にお助けいただきたく、お伺いいたします。 手元に発生時の情報がなく、エラーメッセージ等記載できず記憶に頼ってしまい、申し訳ありません。ちょっと急いでおりますため、情報不足承知ですが質問させていただきます。(エラーメッセージ等不足分は後に追記させていただきます). ImageMagick-6.7.4-7 の次のコードを実行すると、正常に実行できる場合とできない場合があります。 ./ImageMagick-6.7.4-7/convert.exe tmp.png -matte -virtual-pixel transparent -distort Perspective '0 0 0 0 0 360 0 360 360 0 360 0 360 360 360 250' tmp.png 1. shell で直接入力 Linux, Cygwin ..... OK 2. run.sh にコードを作成し sh ./run.sh で実行 Linux ...... OK Cygwin ..... NG ( ' に不正文字のエラーが出ます ) 3. Python2.6 から cmd = """convert tmp.png -matte -virtual-pixel transparent -distort Perspective '0 0 0 0 0 360 0 360 360 0 360 0 360 360 360 250' tmp.png""" os.popen(cmd).read() で実行 Linux ...... OK Cygwin ..... NG ( エラーメッセージは出ないですが、処理に失敗している. おそらく上記と同じ理由 ) 今まで Linux で処理を行っており、Cygwin にポーティングしようとしたら発生した問題です。 ['] の扱いについて基本的なことを理解していないのかもしれません。 ご存知の方おられましたらよろしくお願いいたします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

エラーメッセージ無しで推測するとすると、スクリプトファイルの改行コードがおかしいとかですかね。 Windowsのメモ帳とかで作ってしまって、LF じゃなくて CRLF になってしまっているとか。 tr -d '\15' < infile > outfile でCRを削除出来ます。

jsbach_2005
質問者

お礼

遅くなりました申し訳ありません。 いろいろとやってみました。結局解決できず、別のマシンを使うことで回避しました。 そのマシンとの相違点は 1. Cygwin がインストールされている(エラーが発生する)、Cygwin がない(正常に動作する) という点のみです。ターミナルやコマンドプロンプトの設定が起因している問題かもしれませんが、今回は時間がなかったため深入りは避けました。 Cygwin / Linux 間のポーティングでは簡単なものでもある程度時間的余裕を見ておく必要があると痛感しました。 どうもありがとうございました。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

> Perspective '0 略 を Perspective "0 略 ――のように、引用符から二重引用符に変えてみるとか。

jsbach_2005
質問者

お礼

返信が遅くなりまして、申し訳ありません。 アドバイスいただいたことは、試しましたが結果変わらず、でした。 今はターミナル/コマンドプロンプト設定を見直しております。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

手許のCygwinでは普通にできましたが。 やはり、エラーメッセージを正確に読まないとわかりません

jsbach_2005
質問者

補足

ありがとうございます。現場からは投稿できませんので、レスが遅くなりました。 エラーメッセージです。 2 run.sh にコードを作成し sh ./run.sh で実行 のエラーメッセージは次になります。 --- ': Invalid argument @ error/blob.c/OpenBlob/2589. ' @ error/png.c/MagickPNGErrorHandler/1728. --- Cygwin の version です。 $uname -a 1.7.9(0.237/5/3)

関連するQ&A