Windowsで書いてからWinSCPで送ったりするんですが、
そのときに初歩的ながらハマったため記載。
WinSCPでWindowsとLinux間でファイル送ったりしたときの話。
Windowsで書いてから送ったスクリプト(シェルスクリプト)なんですが、
実行するとこんなエラーが出てくるんです。
/bin/bash^M: bad interpreter: そのようなファイルやディレクトリはありません
/bin/bash^M: bad interpreter: No such file or directory
まずディレクトリじゃなくってスクリプト実行してんだろーが!
って大分キレつつ中身見直したりしたんですが、原因分からず。
んで、面倒ながらLinux内でLeafpadで全く同じ内容書いてみたら動くんですよね。
ハァー…(クソでか溜息)
ただ、動くっちゃ動くらしいのでなんか原因があるんだろと思ったら
テキスト内の文字コードでした。
Windowsだと\r\nで行われていて、Linuxだと\nになっているんで、
シェルスクリプトの動作がおかしくなっていたと…
そういう事だったんか…
サクラエディタで改行コード直したってもいいんですが、
Linuxに変換コマンドがあるってんで、今回はそっち
sedコマンドというので変換できるらしい。
sed -i 's/\r//' test.sh
って形で実行するとWindowsの改行コード\r\nの\rを削除した形に変換できる。
これでLinuxのシェルスクリプトで実行できるようになるんですねー。
初歩的なことだとは思うんだけど、いまだにこういう部分に詰まりますね。
勉強になった(小並)
0 件のコメント:
コメントを投稿