2

私たちは Windows マシンで作業しており、コードは Linux にデプロイされています。

いくつかの Linux スクリプトを開発しているときに、いくつかの ctrl-m 文字があります。リリースは顧客に提供されます。

シェル スクリプトの ctrl-m 文字への影響は何ですか。

ヌス

4

4 に答える 4

10

viエディタでファイルを開く

エスケープを押して、ファイルのコマンドラインに以下を入力します。

:%s/^M//g

Cntrl キー + V + M を押して ^M が追加されていることを確認してから、Enter キーを押します。

文字が削除され、ファイルを保存できます。

于 2012-12-28T19:06:20.033 に答える
4

インタープリターが見つからないように、シバン行を変更します。

$ ./t.sh
bash: ./t.sh: /bin/bash^M: bad interpreter: No such file or directory
于 2012-05-12T00:35:56.503 に答える
4

文字は^M改行です。Windows と DOS では、CR( ^M、または ASCII コード 13) の後にLF( ^J、または改行、ASCII コード 10) が続くテキスト行が終了します。Linux は単にLFを使用するため、キャリッジ リターンはテキストの一部として表示され、そのように解釈されます。つまり、スクリプトが壊れます。

ほとんどの Linux ディストリビューションには、 dos2unixというユーティリティがプリインストールされています。これを使用して、行末文字を DOS スタイルから Linux スタイルに変換できます。

一部のエディターは自動的に変換を行います。他のものには、使用するモードを指定できるオプションがあります。

于 2012-05-12T01:27:57.203 に答える
0

You can use the below syntax too. Since in windows, this Control+v+m will not work , you can use \r instead.

Open the file in binary mode to view the Control-M characters using vim editor with -b option and use the below command to replace the Control-M characters

%s@\r@@g

于 2014-03-11T05:04:00.830 に答える