运行python出错:-bash: ./test.py: /usr/bin/python^M: bad interpreter: No such file or directory

参考网友文章,问题已解决,文章链接

刚刚学习SHELL 写了一个简单的例子发生如下错误 

-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory 

VI打开文件,没发现任何问题, 

把/bin/bash改成/bin/sh 

-bash: ./test.sh: /bin/sh^M: bad interpreter: No such file or directory 

依然报错,脚本内容在VI下没有任何问题,仔细一看错误消息,^M..明显在第一行末尾被加入了个^M, 

这种情况应该有两种原因 

1.在WIN底下用文本编辑工具修改过参数变量,在保存的时候没注意编码格式造成的, 

2.也有可能是在VIM里修改,第一行末尾按到ctrl_v 

错误原因之一很有可能是你的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.
可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的 
(1). vi filename 
然后用命令 
:set ff? 
可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看. 

2.可以用执行dos2unix 命令转换编码 

#dos2unix myshell.sh 



3..也可以用sed 这样的工具来做: 
sed 's/^M//' filename > tmp_filename 
mv -f tmp_filename filename 
来做 
特别说明:^M并不是按键shift + 6产生的^和字母M, 它是一个字符, 其ASCII是0x0D, 生成它的办法是先按CTRL+V, 然后再回车(或CTRL+M) 

关于^M 

new line of DOS/Windows 

new line of dos/win:   0X0d0a 
new line of linux/unix: 0X0a 

转载于:https://www.cnblogs.com/ch459742906/p/6748583.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值