今天在windows下的sublime text 2下写了个脚本,上传到ubuntu服务器中执行后提示:
-bash: /usr/bin/python: /usr/bin/python^M: bad interpreter: No such file or directory
分析:
这是不同系统编码格式引起的:在windows系统中编辑的.sh或.py文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。一般是因为windows行结尾和linux行结尾标识不同造成的。
在win7上面编辑ubuntu下面的文件,保存的时候,有时候会发现文件被保存为dos格式的(如换行等),只能在ubuntu下面通过命令来一个一个转换。可不可以设置sublime text的默认保存格式是unix的呢?
文件的格式控制可以Perference->Setting-Default中找到。设置对象是default_line_ending,这个参数有三个可用选项:system,windows,unix。
system是根据当前系统情况设置,windows使用的CRLF,unix使用的是 LF。
按你的情况,应该在Setting-User中设置"default_line_ending":"unix"就可以解决这个问题。
// Determines what character(s) are used to terminate each line in new files. // Valid values are 'system' (whatever the OS uses), 'windows' (CRLF) and // 'unix' (LF only). "default_line_ending": "unix"