
RedHat Linux ES4 にて、デフォルトUTF-8の文字コードを以下のサイトの手順に従いSJIS化して使用しています。
(サイトの例ではEUC⇒SJISなのですが)
http://www.k5.dion.ne.jp/~whatsup/linux/euc_to_s …
その後、Windows上でシェルスクリプトなどを作成し、ASCIIでアップロードして実行すると『:bad interpreter: そのようなファイルやディレクトリはありません』となります。
Webで調べたところ改行コードが正しくないとの事なのですが、どうにか回避することは出来ないでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
漢字コードと改行コードは、一切、関連性がありません。
漢字を一切使わないファイルでも、改行コードを間違うとサーバーでエラーになります。
LinuxやUnixの世界では、改行コードは「LF(ラインフィード、文字コード10)」の1文字です。
MS-DOSやWindowsの世界では、改行コードは「CR(キャリッジリターン、文字コード13)」+「LF(ラインフィード、文字コード10)」の2文字です。
改行が「CR+LF」になっているテキストファイルを、Linuxサーバーにアップロードする場合「CR+LFをLFのみに書き換えてアップロード」する必要があります。ダウンロードの場合はその逆が必要です。
そして、その変換をしてくれるのが、FTPクライアントソフトの「ASCIIで転送(ASCIIモード)」です。
どうやら正しくASCIIモードで転送をしているようなので、問題は、漢字コードや改行コードの変換ではないようです。
漢字コードが違えば文字化けするだけですし、改行コードが違えば「Error 500:Internal Server Error」が出る筈。
「:bad interpreter: そのようなファイルやディレクトリはありません」が出ているとしたら、マジに「そのようなファイルやディレクトリがない」としか思えません。
シェルスクリプトの1行目の「スクリプトを実行すべきシェルの指定」で、シェルの位置が「サーバーのシェルがある位置」になってないのでは?
もし、Linuxのシェルが「/user/local/bin/csh」だったら1行目には「#! /user/local/bin/csh」と書かないとならないし、「/bin/csh」だったら1行目には「#! /bin/csh」と書かないとならないですよ。
ここを間違うと、httpdが起動すべきシェルを見失います。
ありがとうございます。
とりあえず自己解決しました。
というか、細かい事はよくわからないのですが、エディタにて
改行コードとして『LF+CR』でなく『LF』として保存しなおしてBINARYモードで転送したら実行できるようになりました。
様々なパターンを試しましたが、実行できたのは
文字コード:SHIFT-JIS、改行コード:LF、転送モード:BINARY
の組合せのみでした。
No.1
- 回答日時:
UTF-8かSJISかということと、行末のコードが
どうなのかは関係ないのですがそれはおいといて。
> ASCIIでアップロードして実行すると
とありますけど、ftpで転送しているのでしょうか?
だとしたら本当にasciiモードになっていますか?
od とか hexdumpを使って行末がどうなっているか確かめて、
本当にCR+LFになっているのなら、
tr -d '\013' < スクリプト >別のファイル
でCRを消すとか。
perl -i.bak -pe 's/\r//g' スクリプト
とかでもできます。
ありがとうございます。
とりあえず自己解決しました。
というか、細かい事はよくわからないのですが、エディタにて
改行コードとして『LF+CR』でなく『LF』として保存しなおしてBINARYモードで転送したら実行できるようになりました。
様々なパターンを試しましたが、実行できたのは
文字コード:SHIFT-JIS、改行コード:LF、転送モード:BINARY
の組合せのみでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
XMLの表示文字化け
-
ubuntuでテキストファイルが開...
-
Macで簡単に改行を解除したい
-
illustrator cs2「均等配置(最...
-
au 携帯のメール(vMessage, .v...
-
LinuxMintで,Windows時代に作成...
-
Linuxで書いたプレーンテキスト...
-
アイコンの名前の改行
-
Windows7でのHTML編集
-
ブラウザのテキストをコピーし...
-
英語版WindowsでのCSVファイル...
-
htmlファイルが編集できない
-
【文字コード】コピー&ペース...
-
FTP 文字化け
-
WinとMacで互換性のあるテキス...
-
コピー&ペースト時の文字コー...
-
LOGの漢字が文字化けするよ...
-
テキスト 改行だけの行の一括...
-
バッチ処理での改行出力
-
MS-DOSテキストファイルっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macで簡単に改行を解除したい
-
LinuxMintで,Windows時代に作成...
-
メモ帳での一括たて列選択
-
【文字コード】コピー&ペース...
-
XMLの表示文字化け
-
ドラッグ&コピー→デスクトップ...
-
WinとMacで互換性のあるテキス...
-
メモ帳の出力形式
-
xcodeで改行が。。
-
ソースが文字化けして困ってます。
-
英語版WindowsでのCSVファイル...
-
異なるOSのファイルがなぜ読め...
-
Linuxのテキストファイルについて
-
photoshopのデータが勝手にクリ...
-
コピー&ペースト時の文字コー...
-
MS-DOSテキストファイルっ...
-
掲示板の書き込みの改行
-
ANCIとは?
-
windowsのメモ帳からlinuxへコピペ
-
au 携帯のメール(vMessage, .v...
おすすめ情報