问题解决: 解释器错误: 没有那个文件或目录
Posted 车子 chezi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问题解决: 解释器错误: 没有那个文件或目录相关的知识,希望对你有一定的参考价值。
执行一个我写的 perl 脚本,命令行报错:
/usr/bin/perl^M: 解释器错误: 没有那个文件或目录
分析:
UNIX和Linux使用“\\n”换行,而Windows用“\\r\\n”(不是\\n\\r,已验证).
推测脚本文件在windows下编辑过。用 sed 命令把每行末尾的 \\r 去掉。
解决:
sed -i 's/\\r$//' filename
解释一下,-i
表示 edit files in place,直接修改原来的文本
s/a/b/
表示把 a 替换成 b
$
表示“结束位置”
所以上面命令的意思是:如果一行以 \\r
结尾,就把 \\r
替换为空,也就是去掉它。
有人问,不是以 \\r\\n
结尾吗?
使用 standard sed,您将看不到换行符。这是因为 sed 逐行读取,因此在 sed 模式空间中,当前行文本的末尾没有换行符。换句话说,sed 读取以换行符分隔的数据,并且分隔符不是 sed 脚本所见内容的一部分。
所以,\\n
作为分隔符了,所以每行的末尾就是 \\r
。
参考资料
如何使用sed检测行尾
以上是关于问题解决: 解释器错误: 没有那个文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
错误:readline/readline.h:没有那个文件或目录解决方法
解决办法:dpkg: 错误: 无法打开软件包的 info 文件 /var/lib/dpkg/available 以便读取: 没有那个文件或目录
解决在linux下编译32程序出现“/usr/include/gnu/stubs.h:7:27: 致命错误:gnu/stubs-32.h:没有那个文件或目录问题”