10

EditPlus を使用して Linux bash プログラムを作成しています。ファイルをサーバーに移動するときに書き込みを行った後、次のようなエラーが発生します。

sleep: invalid time interval `2\r'
Try `sleep --help' for more information.

/usr/bin/program: line 9: $'\r': command not found
/usr/bin/program: line 10: $'}\r': command not found
/usr/bin/program: line 11: $'\r': command not found
/usr/bin/program: line 12: syntax error near unexpected token `$'{\r''
'usr/bin/program: line 12: `stop() {

dos2unix を使用してこの問題を修正しましたが、成功しませんでした。この種の問題を回避できる方法があることを知りたいです。それは多くの時間を無駄にします。この問題を解決するためのより良いエディターまたは何らかの方法はありますか?

編集:

この問題を解決するために私がすることは、Linuxでファイルをviし、WindowsファイルからLinuxファイルに1行ずつコピーすると機能することです。これらは私のコードの行です:

line7:udevadm control --reload-rules sleep 2 echo echo $(date +"%b %e %T") hostnameProgram[$$]: プログラム開始 | ティー -a /var/log/messages エコー } stop() {

4

3 に答える 3

10

ファイル設定を変更する必要があります: [設定] -> [ファイル] に移動し、[新しいファイルを次の名前で作成] を UNIX に変更します。また、「読み込み時に無効な CR/LF、null 文字をチェックする」オプションを有効にすることもできます。

于 2012-05-04T18:44:06.347 に答える
4

すでに作成されたファイルの場合

cat OLDFILE | tr -d '\r' > NEWFILE 

助けるべきです。出力を入力にリダイレクトすることはできません。

cat FILE | tr -d '\r' > FILE 

これは、入力ファイルが読み取られる前に切り捨てられるためです。

tr同様のプログラムとは対照的に、これはファイル名をパラメーターとして受け入れないため、猫の無用使用賞の対象にはなりません。

于 2012-05-04T18:57:33.573 に答える