错误原因:这主要是因为node后面多了\r这个字符的原因。在linux终端下,输出\r会什么都不显示,只是把光标移到行首。于是终端虽然输出了/usr/bin/env bash,但是碰到\r后,光标会被移到行首,接着输出了:No such file or directory把前面的覆盖掉了。于是出现了那个莫名其妙的出错信息了

解决方法:

使用vim打开要运行的脚本文件

:set ff=unix
:wq!

深入分析:

转载自http://hgoldfish.com/blogs/article/31/

我一直对字符界面有抵触感,即使会用vim,我的linux脚本(python/bash script)一般都是在windows下写完调试好,然后传到linux上的。

不过写好的linux脚本传到linux上运行的时候却经常报这样的错:

$ cat fish.py
#!/usr/bin/env pythonprint "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的字符,叫做回车符,而\n代表ascii码为10的字符,叫做换行符。对于:

#!/usr/bin/env python\r\n

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

查看脚本文件位置:

修改脚本文件:

终端显示env: node\r: No such file or directory的解决办法相关推荐

  1. linux 运行python 看不到异常信息_Linux异常解决:/usr/bin/env python\r no such file or directory...

    我有两台电脑,一台win10系统,一台Liunx系统.今天在win10上面写了一个ROS程序,拷贝到Linux上面,执行rosrun命令出现异常信息/usr/bin/env python\r no s ...

  2. linux下生成guid,在Linux下生成GUID的程序,及编译错误 “uuid/uuid.h: No such file or directory” 的解决办法。...

    在Linux下编写生成GUID的程序,如下 guid.c 文件: #include #include void uuid2string(const uuid_t uu, char* const str ...

  3. 关于在针对esp32进行编程时出现dl_lib.h: No such file or directory的解决办法

    dl_lib.h: No such file or directory 关于使用Arduino IDE对ESP32系列单片机进行编程时遇到dl_lib.h: No such file or direc ...

  4. [Error] iostream.h: No such file or directory的解决办法

    直接上错误代码实例 #include <iostream.h>int main() {print('hello, world\n')return 0;} 编译通不过,直接出错 [Error ...

  5. 使用PCL库里与openni相关的库时遇到error: pcl/io/openni_grabber.h: No such file or directory的解决办法

    背景: 我打算用pcl获取kinect数据(根据官方代码:点击打开链接)候遇到了: error: pcl/io/openni_grabber.h: No such file or directory的 ...

  6. 关于Linux下文件删除文件时提示No such file or directory的解决办法

    转自:http://blog.51cto.com/13921547/2172901 本人了Linux小白一枚,遇到一点问题想请老大们指点一下 今天练习tar命令压缩文件时想给给文件名内增加一个当前年月 ...

  7. colab中遇到“THC/THC.h: No such file or directory”的解决办法

    若在运行colab是遇到如下问题 fatal error: THC/THC.h: No such file or directory 问题原因:pytorch在高版本(1.11以后)将THC/THC. ...

  8. hive执行sh脚本时报错No such file or directory的解决办法

    一.对于在服务器上新上传的start.sh脚本,启动时容易出现,-bash:./start.sh:/bin/sh^M: bad interpreter:No such file or director ...

  9. 运行linux脚本出现/usr/bin/env: ‘python\r’: No such file or directory

    原因及解决方案:https://www.cnblogs.com/skzxc/p/12516989.html

最新文章

  1. MATLAB APPbase,使用HTTPD做内部访问转向
  2. R语言修改标题、坐标轴刻度、坐标轴名称的大小(cex.axis、cex.lab、cex.main函数)...
  3. java的this_java的this是什么意思
  4. 世界上第一位程序员是位美女——AdaLovelace【有图为证】
  5. mysql存储过程语法 if_mysql存储过程语法 if
  6. 关于精英版stm32从模板工程移植RTT Spi驱动打开后编译不过的处理办法
  7. MySQL无法启动 服务没有报告任何错误
  8. 杭电4506小明系列故事——师兄帮帮忙
  9. 基于热传导方程的高温作业专用服装设计(一)
  10. Torah RVP Claiming Tutorial
  11. 明星隐私倒卖链:只要150 你对朱一龙行踪比他妈还了解
  12. 《逆商:我们该如何应对坏事件》201903
  13. 平衡二叉树(注意LR和RL)
  14. 4.1 费马质数分解
  15. Python 通过微信控制实现app定位发送到个人服务器,再转发微信服务器接收位置信息。
  16. Python运维常用的脚本,提高工作效率就靠它了
  17. 王子与公主的爱情故事新结局(转)
  18. Windows桌面任务栏上面无线网显示不见了如何解决
  19. 作为程序员的你在外行人眼里是一个怎样的群体?
  20. 串联谐振电路原理?串联谐振电路怎么工作?案例公式,几分钟搞定

热门文章

  1. 系统数据库的概念结构、逻辑结构、物理结构设计
  2. 记一次el-select远程搜索默认数据回显问题
  3. STM32F407 DMA采集多通道ADC
  4. GitHub 学生认证,申请 GitHub 学生包
  5. 【luoguP5550】Chino的数列
  6. 一文搞懂FIFO深度计算
  7. Spring框架的自动装配
  8. 如何在网上找到并下载你想要的软件
  9. 牢记昨天的教训_学习新事物时要牢记的科学支持方法
  10. 3.5 杭电复试题2007