2011-01-13 36 views
6

私はCygwinを初めて使ったので、インストールして単純な環境変数を設定しようとしました。しかし、コマンドシェルを開くと "#357 \ 273 \ 277コマンドが見つかりません"というエラーが表示されますCygwinのコマンドで.bashrcに不正な文字が見つかりませんでした。357 273 277

問題の内容と隠された悪い文字を「発見」する方法について説明した記事が見つかりました: http://mblog.lib.umich.edu/DataDiscussions/archives/2010/01/index.html しかし、文字を削除することで問題を解決する方法がわかりません(odコマンドを使用して自分の.bashrcファイルで問題が確認されています)。私はNotepad ++の環境設定ビューをUTF-8に変更しようとしましたが、ANSIは役に立たなくなりましたが、ファイルはまったく変更されませんでした。

あなたがCygwinの外のあなたの.bashrcを編集し、Windowsのエディタを使用しておりますので 任意の助けをいただければ幸いです

...

答えて

8

cygwinのbashにファイルを送る前に、まずdos2unix変換を行い、CR LFのような衝突を起こす可能性があります。オープンbashの

名@ホスト〜 $ DOS2UNIX your_file.sh

0

は、編集者があなたの改行文字を台無しにしているかもしれない(すなわち。CR、Rなど)Notepad ++に隠れた文字を表示するように指示できます。私はあなたがその設定でそれを見つけることができると思います。文字セットを変更することは一つのことですが、隠された文字を見ることができることは別です。

0

Thisの記事では、テキストファイルをある標準から別の標準に変換するために使用できるいくつかのプログラムについて説明しています。 cygwinコマンドラインでdos2unixを使ってみてください。

1

それは私がANSI(ないビューの好み)にUTF-8からエンコーディングを変更した場合、ファイルが更新され、特別になるように見えます文字がなくなり、 "\ 357 \ 273 \ 277コマンドが見つかりません"という問題が修正されました。やめ!

11

私が知る限り、メモ帳++でUTF-8とCygwinとして保存されているファイルの一般的な問題は、デフォルトでバイトのオーダー記号のUTF-8エンコードファイルを保存することです。このBOM文字は、CygwinのようなUNIXのような環境とはあまり互換性がありません。

これらのファイルにUnicode文字が必要な場合は、Notepad ++で「BOMなしのUTF-8」エンコーディングを使用できます。そうしないと、デフォルトでBOMを使用しないANSIやその他のエンコーディングを使用できます。

エンコードのほかに、ファイルがunix(LF)で改行されていることを確認してください。

1

これらを削除する方法の1つは、Linuxではviを使用することです。あなたは

のviファイル名

を言った後、VIにedコマンドを使用している場合:SEファイル・エンコーディング= ASCII

これは、型破りな文字を取り除くでしょう。

これを確認するには、ファイルを保存してからファイルに対してod -cを実行します。

前: od -c changes.sql |ヘッド 0000000 357 273 277イノベーション '

後: od -cが変更されました。SQL |ヘッド 0000000 I N S E R T I N T O C O

関連する問題