Linux

Linuxで実行できないときは改行コードを疑え!

こんにちは、まさかめです。

 

今回はLinuxでファイルが実行できない際に気をつけるべきことについて紹介します。

まさかめ
まさかめ
ちょうど僕自身が最近ハマった罠なのでみなさんも気をつけてください…

結論、改行コードには気をつけろ

パスはあっているはずなのに実行できない、、、

そんなときはファイルの改行コードを疑いましょう。

Linux上で動かしたいファイルをWindows上のエディターで作成したら、
OSの違いによる改行コードの違いによりうまくファイルを読み取れないということが起こることがあります。

改行コードとは

改行コードとは、その名の通り改行を表すコードであり、

プログラムの実行ファイルなどに含まれます。

改行コードには以下のような種類があります。

CR : Carriage Return キャリッジ・リターン
LF : Line Feed ラインフィード
CR + LF : Carriage Return キャリッジ・リターン + Line Feed ラインフィード

対処法

Windowsで作成したファイルをLinuxで開いた際に「^M」がある場合は以下のコマンドで削除(^Mをなにもない状態に一括置換)する。

%s/検索文字列/置換文字列/g

:%s/^M//g

まとめ

今回はLinuxにおいて改行コードによる思わぬ挙動について解説しました。

ファイルの中身は間違っていないはずなのになぜ実行されないのかという場面に出くわした際に一度検討してみてください。