终端显示env: node\r: No such file or directory的解决办法
错误原因:这主要是因为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的解决办法相关推荐
- 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 ...
- 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 ...
- 关于在针对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 ...
- [Error] iostream.h: No such file or directory的解决办法
直接上错误代码实例 #include <iostream.h>int main() {print('hello, world\n')return 0;} 编译通不过,直接出错 [Error ...
- 使用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的 ...
- 关于Linux下文件删除文件时提示No such file or directory的解决办法
转自:http://blog.51cto.com/13921547/2172901 本人了Linux小白一枚,遇到一点问题想请老大们指点一下 今天练习tar命令压缩文件时想给给文件名内增加一个当前年月 ...
- 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. ...
- hive执行sh脚本时报错No such file or directory的解决办法
一.对于在服务器上新上传的start.sh脚本,启动时容易出现,-bash:./start.sh:/bin/sh^M: bad interpreter:No such file or director ...
- 运行linux脚本出现/usr/bin/env: ‘python\r’: No such file or directory
原因及解决方案:https://www.cnblogs.com/skzxc/p/12516989.html
最新文章
- MATLAB APPbase,使用HTTPD做内部访问转向
- R语言修改标题、坐标轴刻度、坐标轴名称的大小(cex.axis、cex.lab、cex.main函数)...
- java的this_java的this是什么意思
- 世界上第一位程序员是位美女——AdaLovelace【有图为证】
- mysql存储过程语法 if_mysql存储过程语法 if
- 关于精英版stm32从模板工程移植RTT Spi驱动打开后编译不过的处理办法
- MySQL无法启动 服务没有报告任何错误
- 杭电4506小明系列故事——师兄帮帮忙
- 基于热传导方程的高温作业专用服装设计(一)
- Torah RVP Claiming Tutorial
- 明星隐私倒卖链:只要150 你对朱一龙行踪比他妈还了解
- 《逆商:我们该如何应对坏事件》201903
- 平衡二叉树(注意LR和RL)
- 4.1 费马质数分解
- Python 通过微信控制实现app定位发送到个人服务器,再转发微信服务器接收位置信息。
- Python运维常用的脚本,提高工作效率就靠它了
- 王子与公主的爱情故事新结局(转)
- Windows桌面任务栏上面无线网显示不见了如何解决
- 作为程序员的你在外行人眼里是一个怎样的群体?
- 串联谐振电路原理?串联谐振电路怎么工作?案例公式,几分钟搞定