Cygwin上でのシェルスクリプトの改行コード

シェルスクリプトを作って、実行しようとしたところ、なにやら良くわからないエラーが発生(" : Command not found"のようなエラー)。調べたところ、改行コードが問題だったらしい。改行コードをDosの「CR LF」からUnixの「LF」に変えたら正常に実行されるようになった。

Meadowで改行コードを変えるコマンド
C-x RET f sjis-unix


毎回.shファイルを開くたびに設定するのはめんどくさいので、.shファイルはsjis-unixで開くように設定しておいた。.emacsに以下を追加すればOK。

(add-hook 'after-init-hook '(lambda ()
   ; shの改行コードはLFじゃ無ければダメらしい
   (modify-coding-system-alist 'file "\\.sh" 'sjis-unix)
))

参考

Meadow/Emacs memo: Meadow 関連の少し高度な知識(改行コードを変えるコマンド)
Using Cygwin - FAQ(Q.2を参考にした)