zoukankan      html  css  js  c++  java
  • 解决mac os下mcss命令报错:env: node : No such file or directory

    标题无“转载”即原创文章,版权所有。转载请注明来源: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语言里使用 代表ascii符为13的字符,叫做回车符,而 代表ascii码为10的字符,叫做换行符。对于:

    #!/usr/bin/env python
    

    这样一行文本,windows下的程序会认为#!/usr/bin/env python就是一行。而linux呢,则会认为#! /usr/bin/env python 是一行。于是,刚才的错误就出来了,因为根本没有python 这个文件嘛。

    有个比较奇怪的地方,仔细想想,env如果出错的话应该是报这样的错误信息的:

    /usr/bin/env: python : No such file or directory (python后面有一个回车符)

    那为什么现在是:

    : No such file or directory

    这主要是因为 这个字符的缘故。在linux终端下,输出 会什么都不显示,只是把光标移到行首。看看我用python取得env输出的出错信息:

    /usr/bin/env: python
    : No such file or directory

    于是终端虽然输出了/usr/bin/env: python,但是碰到 后,光标会被移到行首,接着输出了:No such file or directory把前面的覆盖掉了。于是我们就看到那个莫名其妙的出错信息了。

    可能有人会怪windows怎么那么傻,一个 不就可以了,为什么要用 呢,给我们造成了多大的麻烦。其实这也不能怪windows。使用 的历史可以追溯到遥远的19世纪。 那时候发明的打字机主要结构是一个实心圆筒+排列成菊花状的字模。纸张被牢牢地固定在圆筒的表面上。当我们按下一个字母的时候,机械装置引动字模"飞"向纸张,同时圆筒前的色带升起,用力地印下去,于是纸张上面就出现一个字了。印完之后,机械装置自动地让圆筒向左移动一个字母格子,方便打印下一个字符。打完一行之后,左手边上有一个摇杆,摇一下,圆筒就可以滚动一个行距,这是换行。不过,因为打字的时候圆筒总会不断地向左移动,所以打字员还需要用力地把圆筒推回右边,这就是传说中的回车了。在计算机里常见的换行操作在打字机里需要换行+回车两个操作。自然,计算机里不用这么麻烦,不过windows喜欢看起来更兼容一点。于是换行就成了 了。

    解决办法:

    Lookup up:

    :set fileformat=unix 
    :set fileformat=dos

    This can be used on either platform to switch to the other encoding.

  • 相关阅读:
    HDU2897( 巴什博奕变形)
    HTML小知识点积累
    几种自己主动运行js代码的方式
    leetcode笔记:Contains Duplicate
    【Nutch基础教程之七】Nutch的2种执行模式:local及deploy
    为什么使用模板
    前端编程提高之旅(十)----表单验证插件与cookie插件
    【HDOJ 5399】Too Simple
    进程间通信之-信号signal--linux内核剖析(九)
    iOS类的合理设计,面向对象思想
  • 原文地址:https://www.cnblogs.com/zhishaofei/p/4378164.html
Copyright © 2011-2022 走看看