概要
本日はソースコードの改行コードについて話をしたいと思います。
最近気づいたことですが、Linux環境で圧縮したtarファイルをWindows上で解凍してみたら改行コードが変更されました。
この話をしたいと思います。
前提条件
・開発ソースのすべてのファイルをtarファイルに圧縮する。
・Windows上で解凍するツールは以下のもので試す。
①Winzip 2.5?
②7zip
圧縮ファイルを解凍
会社のPCにインストールされている圧縮ソフトウェアがWinzipのV2.5からtarファイルをWindows環境で
解凍するとソースコードの改行コードが「LF→CRLF」自動で変更される問題が発生しました。
解決方法
7zipツールからの解凍は問題なく改行コードがLFでした。
Winzipから解凍したソースファイルを手動で改行コードを変更したい場合は、
次のサクラエディタにて置換すれば簡単に変更は可能です。
その他
Winscpツールを利用してLinux環境からWindows環境へ「シェルスクリプトファイル」をダウンロードするとなぜかこのときも改行コードがLF→CRLFに変更されました。この状態で別のLinux環境にこのスクリプトファイルをアップロードして実行するとなぜか正しく実行されない問題も起きました。
圧縮解凍以外にもファイル転送するツールからも同じ問題がありました。
一応A環境で正しく動いているのにB環境では正しく動いてないときも改行コードを確認してみてください。
またはデフォルトのシェルスクリプトがBashまたはCshなのかも確認が必要です。
終わりに
今日はソースコードの改行コードについて話をしてみました。
旧担当者から既存のソースを頂いて確認したときにすべてのソースの改行コードがWindowsのCRLFになっていることをみて旧システムではこのソースだったんだと思っていました。
新しい環境には改行コードを正しく変換してインストールし、確認している途中また旧担当者から最新ソースを改めて送ってきたんですが、このときは一部のソースコードは正しく改行コードがLFになっていました。テンプレートのコードはまだCRLFでしたが、そのまま新しい環境にも移行して確認しましたが、問題なかったので、そのまま利用中です。ただ、シェルスクリプトの場合は改行コードにより正しく動作しないことがありましたので、改行コード及び文字コードなどもシステムの環境文字コードに合わせて変更したら問題なく実行されました。
システムの文字コードと改行コードを意識しながら作業するのが大事と思いました。
今日はここまでです。ありがとうございます。