1. ホーム
  2. Qt

シェル 構文エラー問題を解決する方法

2022-03-15 10:44:18

Windowsで編集したシェルスクリプトの行末に"^M"記号が付くことがある場合

MS-DOSやWindowsでは、キャリッジリターン+ラインフィードで改行を表すため、WindowsのVCで書かれたコードをLinuxのVimで見ると、行末の"^M"記号が1文字を表していることになります。

Vimでこの問題を解決するには、Vimのreplace機能を使って、以下のreplaceコマンドラインを入力すれば、簡単にすべての"^Ms"を取り除くことができます。

  1)

vi -b setup.sh



  2) コマンド編集画面で、ESCキーを押した後、shift+:コロン>タイプ: %s/^M//g を入力します。

  注)上記のコマンドラインにおける「"^M"」は、「"^"+"M"」ではなく、「"Ctrl+v "」「"Ctrl+M"」キーを組み合わせた文字となります。

  これを置き換えたら、保存すれば実行されます。

  もちろん、他にも以下のような置き換え方法があります。

  a. linux のバージョンによっては dos2unix プログラムがあり、 ^M を取り除くのに利用できます。

  b. cat filename1 | tr -d "/r" > newfile 新しいファイルを生成するための^Mや、sedコマンドなどを削除します。置き換え可能なコマンドであれば、新しいファイルを生成するために使用することができます。