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.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
の組合せのみでした。
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
の組合せのみでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- UNIX・Linux Linuxサーバーのパーティション・ディレクトリの推奨見積もりについて 3 2023/01/17 00:46
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- HTML・CSS VSコードでHTMLに(リンク)ファイル名をクリックしてもファイルが開かれない 1 2023/02/12 07:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メモ帳での一括たて列選択
-
.batファイル作成 mailto: コ...
-
Binary--> ascii 変換Tool
-
【文字コード】コピー&ペース...
-
r\\ command not found
-
ubuntuでテキストファイルが開...
-
テキストファイルをページ番号...
-
マックでhtmlを打ち、ホームペ...
-
MS-DOSテキストファイルっ...
-
windowsのメモ帳からlinuxへコピペ
-
(1)はマックでみるとどう文字化...
-
メールに添付で送られてきたメ...
-
LinuxMintで,Windows時代に作成...
-
Ms-Word上の改行を消去する方法
-
嫌ってるのに真似してきたりマ...
-
ftpのmgetコマンドの自分の格納...
-
Windows10 フォルダ内の自動並...
-
onedriveの中身を削除したらパ...
-
Windows11 でのファイル削除
-
バッチファイルで変数の中身を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メモ帳での一括たて列選択
-
【文字コード】コピー&ペース...
-
Macで簡単に改行を解除したい
-
windowsのメモ帳からlinuxへコピペ
-
ブラウザのテキストをコピーし...
-
LinuxMintで,Windows時代に作成...
-
XMLの表示文字化け
-
.batファイル作成 mailto: コ...
-
illustrator cs2「均等配置(最...
-
ubuntuでテキストファイルが開...
-
ファイル名の付け方(中央揃え)
-
ドラッグ&コピー→デスクトップ...
-
MS-DOSテキストファイルっ...
-
掲示板の書き込みの改行
-
RedHatで使えるエディタ
-
テキストで特定の文字列を含む...
-
Linuxで書いたプレーンテキスト...
-
au 携帯のメール(vMessage, .v...
-
テキストファイルをページ番号...
-
文字コードの混在しているファ...
おすすめ情報