viエディタ

UNIX

viエディタで改行コードをUNIX仕様に変換する方法

2019/01/10

秀丸エディタで作成したシェルファイル(.sh)を手持ちのサーバにFTPアップロードし、ターミナルから起動させたところ、bad interpreterエラーが発生したので、viエディタ(vim)を使って改行コードをUNIX仕様にする方法を備忘録としてポストします。

bad interpreterエラー

秀丸エディタで作成したシェルファイル(.sh)を手持ちのサーバにFTPアップロードし、ターミナルから起動させたところ、以下の様なエラーが発生しました。

-bash: /file/to/path/dbdump.sh: /bin/sh^M: bad interpreter: そのようなファイルやディレクトリはありません

「bad interpreterエラー」とは何ぞやと調べたところ、改行コードが異なると起きるエラーだそうです。
秀丸エディタでは文字コード EUC、改行コード LF で作成していたのですが、FTPする時かどこかで変わってしまった??(原因不明)

そんな時は焦らず、ターミナルから viエディタを起動し、改行コードを UNIX 仕様に変換して乗り切りましょう。

開いて、fileformatを変換する、ってことです。
最後の「:wq」は上書き保存のコマンドです。

現状のファイルフォーマットがどうなっているのかを調査する場合は以下のようにします。

やるな、vi。
ちなみに、viエディタと書いていますが、実は vim が動いていたことに非常に驚いています(苦笑)

-UNIX
-, , , , , ,