組み込み技術を向上したい!!

でも組み込み以外にも手を出し始めました・・・

shell実行時に「コマンドが見つかりません」と表示されたとき

 

WindowsとLinuxでは改行コードが違います。
WindowsではCR LFとなりますが、LinuxではLFのみです。

これが原因で、Windows上で作成したファイルをLinuxに転送して
動作確認する際にタイトルのような「コマンドが見つかりません」といった
コメントが表示されてしまいます。

 

任意のファイルの改行コードがLFになっているか CR LFになっているかは以下のように確認できます。
(xxx.shが対象ファイルとした場合)

cat -A xxx.sh

この表示結果で、^Mが表示されているのがCRで、
$と表示されているのがLFです。
つまり^Mが表示されるとNGということですね。

(od -c xxx.shでも確認できるけど見にくいかも。
この場合 CRは\r、LFは \n となります。)

 

この対策としてLinux上でコマンドを使っていろいろやっても良い
かと思いますが、私のようにMobaXtermという愛すべきツールを
使って作業している場合は画面上部の「Format」のタブを
クリックして「UNIX」を選択すると簡単に改行コード
をLFのみに変更できます。

Linux上でコマンドをつかって処理したい場合は

tr -d “\r” <削除対照ファイルパス> 出力ファイルパス

で、できるっぽいけど、「削除対照ファイルパス」と「出力ファイルパス」を
同じにして上書きしてみたらファイル内容がからっぽになってしまったので注意!!

Good Luck!!