http://cygwin.com/ml/cygwin-announce/2006-12/msg00026.html によるとbash-3.2.9-10からCRが、改行(shではコマンドの区切り)ではなく、CRそのものとして扱われるようになったらしい。 ということで、shellスクリプトの改行コードがCRLFの場合、 #!/bin/sh echo "hello world!" みたいな単純なコードでも ./sample.sh: line 2: $'\r': command not foundと、CRがコマンドのように扱われてしまいます。 解決法としては、メールにあるように、スクリプトのどこか(interactive shellの場合は、.bashrcとか)に、↓のようにigncrオプションを設定してCRを無視するようにすればOK。 #&&の前のコマンドは、古い環境でスクリプトが実行されて、