• ベストアンサー

Windowsで作成したシェルが読み取れない原因

これまでLinux上で動作していたシェルスクリプトファイル(*.sh)をFFFTPを使ってWindows上に落とし、Wordpad等で編集した後再度FFFTPを使ってLinux上に戻し実行すると"syntax error"になってしまいます。 FFFTPでの転送ではアスキーモード、文字コード無変換を選択しています。 因みにWindows上に落とした後、内容に全く手を加えず戻した場合でも同じことがおきました。 業務制約上、FFFTP以外の手段でLinux上に戻すことは出来ません。 原因・対策として何が考えられるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

保存時の文字コードと改行コード。 FTPサーバの設定の問題。 vsftpdだと ascii_upload_enable ascii_download_enable あたりか あとはパーミッションの問題とか

noname#26506
質問者

お礼

ascii_upload_enable ascii_download_enable の2行のコメントアウトを外し、vsftpdを再起動したところ問題が解決しました。 ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

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

1) sh -xで実行して、エラー発生時のデバッグ出力を調査する。 2) hexdumpやodを使って、へんなバイナリコードが混入してないか調査する。 3) スクリプトをコピーして、Windowsから再アップロードしたものとdiffする。md5値が変化してないかをみる。 改行コードや漢字コードがらみなら、これくらいで切り分けできると思います。

noname#26506
質問者

補足

ご回答ありがとうございます、追加で質問させてください。 2) hexdumpやodを使って、へんなバイナリコードが混入してないか調査する。 hexdumpした結果無数の数字列が出力されてきましたが、この表示がどのようになっていればバイナリコード、アスキーコードと言えるのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A