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に転送されて実行されると、このような間違いがよく報告されます.
ファイルが見つかりませんか?しかし、いくらスクリプトを修正しても、解決できません.ファイルが見つかりません.それは最初の行のenvコマンドに問題があるはずです.本当に頭がつかめませんが、改行の問題です.
linuxの下のテキストファイルはasciiコード10の文字で改行されていることがわかります.Windowsでは13文字と10文字の連続文字が使用されます.pythonおよびc言語では、
このような1行のテキスト、windowsの下のプログラムは
奇妙な点がありますが、よく考えてみると、
なぜ今は
これは主に
すると端末は
Windowsがどうしてそんなに馬鹿なのか、
解決策:
Lookup up:
This can be used on either platform to switch to the other encoding.
転載先:https://www.cnblogs.com/zhishaofei/p/4378164.html
私はずっと文字インタフェースに抵抗感を持っていて、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