Macosでのmcssコマンドエラーの解決:env:noder:No such file or directory

2428 ワード

タイトルは「転載」ではなくオリジナルの文章で、著作権はすべてあります.転載は出所を明記してください.http://besteam.im/blogs/article/31/.
私はずっと文字インタフェースに抵抗感を持っていて、vimを使っても、私のlinuxスクリプト(python/bash script)は一般的にwindowsの下でデバッグを書き終わって、linuxに伝わります.
しかし、書いたlinuxスクリプトがlinuxに転送されて実行されると、このような間違いがよく報告されます.
$ cat fish.py #!/usr/bin/env python print "fish" $ chmod u+x fish.py $ ./fish.py : No such file or directory

ファイルが見つかりませんか?しかし、いくらスクリプトを修正しても、解決できません.ファイルが見つかりません.それは最初の行のenvコマンドに問題があるはずです.本当に頭がつかめませんが、改行の問題です.
linuxの下のテキストファイルはasciiコード10の文字で改行されていることがわかります.Windowsでは13文字と10文字の連続文字が使用されます.pythonおよびc言語では、\rを使用してascii文字が13の文字を表し、リターン文字と呼ばれ、
を使用してasciiコードが10の文字を表し、改行文字と呼ばれます.次の場合:
#!/usr/bin/env python\r

このような1行のテキスト、windowsの下のプログラムは#!/usr/bin/env pythonが1行だと思っています.linuxは、#! /usr/bin/env python\rが一行だと思っています.すると、さっきの間違いが出てきました.python\rという書類はありませんから.
奇妙な点がありますが、よく考えてみると、envが間違っていたら、このようなエラーメッセージを報告したはずです.
/usr/bin/env: python : No such file or directory (python        )

なぜ今は
: No such file or directory

これは主に\rという文字のせいです.linux端末では、出力\rは何も表示されず、カーソルを行頭に移動します.pythonでenv出力のエラー情報を取得したのを見てみましょう.
/usr/bin/env: python\r: No such file or directory

すると端末は/usr/bin/env: pythonを出力したが、\rにぶつかるとカーソルが行頭に移動し、:No such file or directoryを出力して前のカバーを外した.そこで私たちはそのわけのわからないエラーメッセージを見ました.
Windowsがどうしてそんなに馬鹿なのか、
でいいのに、どうして\r
を使うのか、私たちにどれだけ迷惑をかけたのか、誰かが責めているかもしれません.実はこれもwindowsのせいではありません.\r
を用いた歴史は、遠い19世紀にさかのぼることができる.その時発明されたタイプライターの主な構造は、実心円筒+菊花状に配列されたタイプであった.紙は円筒の表面にしっかりと固定されている.私たちがアルファベットを押すと、機械装置が字型を動かして紙に「飛ぶ」と同時に、円筒前の色帯が上昇し、力を入れて印刷され、紙の上に字が現れた.印刷が終わった後、機械装置は自動的に円筒を左に1つのアルファベット格子を移動させ、次の文字を印刷しやすい.1行を打った後、左手にロッカーがあり、振ると円筒が1行の距離を転がすことができます.これは改行です.しかし、タイプを打つときに円筒は常に左に移動するので、タイピストは円筒を強く右に戻す必要があります.これが伝説のリターンです.コンピュータでよく見られる改行操作はタイプライターで改行+リターンの2つの操作が必要です.もちろん、コンピュータの中ではそんなに面倒ではありませんが、windowsはもっと互換性があるように見えます.そこで改行は\r
になりました.
 
 
解決策:
 
Lookup up:
:set fileformat=unix 
:set fileformat=dos

This can be used on either platform to switch to the other encoding.
転載先:https://www.cnblogs.com/zhishaofei/p/4378164.html