今天在windows下使用notepad++写了个python脚本,传到linux服务器执行后提示:-bash: ./logger.py: usr/bin/python^M: bad interpreter: No such file or directory 1.原因分析 这是不同系统编码格式引起的:在windows系统中编辑的logger.py文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息.一般是因为windows行结尾和linux行结尾标识不同造成的,在window中行结…
如题! 现象: 当时的场景是这样的:我在IDEA中编辑了项目中的脚本sh,然后利用maven打成zip包.把zip包上传到linux服务器解压运行. 当在linux服务器上运行该sh脚本文件时,提示错误:/bin/sh^M: bad interpreter: No such file or directory 原因: windows的换行符与linux的换行符是有区别的.我的IDEA使用了系统自带的换行符号(windows),所以在linux服务器上,该换行符就有问题了. 解决方法: IDEA的…
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory.这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息. 如果我们的脚本是在windows环境下编写的,需要将编码转换称unix格式. 下面我们用Notepad++中Windows,Unix,Mac三种格式之间的转换. 1.我们先查看当前文件格式(换行符用的是什么字符),如图: 2.从…
在Linux中运行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下运行会报以上异常信息. 解决:1)在windows下转换: 利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换.再放到Linux中运行.转换方式例如以下(UltraEdit):File-->Conversions-->…
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息. 解决:1)在windows下转换: 利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行.转换方式如下(UltraEdit):File-->Conversions-->DO…
转载地址:http://www.cnblogs.com/pipelone/archive/2009/04/17/1437879.html 在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息. 解决:1)在windows下转换: 利用一些编辑器如UltraEdit或EditP…
问题 在Windows环境下用Notepad++写了个shell脚本,上传到Linux平台后运行报错如下: /bin/sh^M: bad interpreter: No such file or directory 经过查阅资料才知道,这是由于文件格式的问题:使用vi/vim进入该shell文件,按下:进入末行模式,输入set ff查询文件格式,结果如下: fileformat=dos 这个问题是由于不同的操作系统使用了不同的符号来换行导致的,可以简单参考下下面的表格: 系统 换行符 DOS C…
今天遇到一个很诡异的问题,一直运行很正常的shell脚本失败了,只是昨天增加了一个参数而已. 报错信息: /bin/bash^M: bad interpreter: No such file or directory 后来发现root cause, 昨天修改文件的时候在windows中修改保存,然后上传的. 文件被识别成dos格式. 在此的命令模式下使用以下命令可以查看: : set ff 返回结果:  fileformat=dos 修改文件格式为Unix,使用下面的命令: :set ff=un…
今天在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上面…
假设现有一篇待执行的python脚本test.py python脚本在linux下面执行有两种方式: 打开Linux终端,输入 python test.py 在test.py脚本第一行添加声明 #!/usr/bin/python 这是指定python脚本的解释器,然后给test.py添加可执行权限并执行 chmod +x test.py ./test.py 第一行时给test.py添加可执行权限,第二行执行该脚本.(./)的含义是本目录下…
主要原因是build.sh是在windows下编辑然后上传到linux系统里执行的..sh文件的格式为dos格式.而linux只能执行格式为unix格式的脚本. 我们可以通过vi编辑器来查看文件的format格式.步骤如下: 1.首先用vi命令打开文件 2.在vi命令模式中使用 :set ff 可以看到改文件的格式为dos 3.修改文件format为unix 方法一:使用vi修改文件format 命令:set ff=unix :set ff=unix 执行完后再通过set ff命令查看文件格式,…
原因是 文件的格式是dos,修改为unix 就OK了 查看文件格式  用vim 打开出错的文件    按 ESC键     再按shift+冒号   输入 set  ff  回车   可以看见 该文件的格式 fileformat=dos按shift + 冒号  输入  set ff=unix 回车 发现没反应,那就对了. 可以按 shift + 冒号  set ff 查看  fileformat=unix --------------------- 原文:https://blog.csdn.ne…
错误中脚本文件的一个非常可能的原因是DOS格的, 即每一行的行尾以\r\n来标识, 其ASCII码各自是0x0D, 0x0A.  能够有非常多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的 在Terminal中输入例如以下: vi filename 然后用命令 :set ff? 能够看到dos或unix的字样. 假设的确是dos格式的, 那么你能够用set ff=mac把它强制为mac格式的, 然后存盘退出. 再执行一遍看. 就会看到"^M"的真身.这时候把对于的…
执行脚本时提示解释器有问题,错误提示如下: 这种提示一般是脚本在windows系统之通过记事本写的,记事本修改过的文本,会默认在文本前面加上一些看不到的标记,导致shell脚本不能被shell解释器识别,就会爆出这个错误. 这种错误只能替换shell脚本或者重写,不建议用记事本写脚本. 这里我直接使用改脚本的原稿(备份)替换后恢复正常.…
1.用vim打开文本 输入 : set ff 这里要先按":"号 显示文件为dos格式 2.强制装换格式为unix 先按冒号":" set ff=unix 然后保存退出 3.再次执行恢复正常.…
关于脚本第一行的 #!/usr/bin/python 的解释,相信很多不熟悉 Linux 系统的同学需要普及这个知识,脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定本脚本用什么解释器来执行. 有这句的,加上执行权限后,可以直接用 ./ 执行,不然会出错,因为找不到 python 解释器. #!/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器. #!/usr/bin/env python 这种用法是为了防止操作系…
引用https://www.cnblogs.com/furuihua/p/11213486.html 关于脚本第一行的 #!/usr/bin/python 的解释,相信很多不熟悉 Linux 系统的同学需要普及这个知识,脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定本脚本用什么解释器来执行. 有这句的,加上执行权限后,可以直接用 ./ 执行,不然会出错,因为找不到 python 解释器. #!/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bi…
1.#!/usr/bin/python 是用来说明脚本语言是 python 的 是要用 /usr/bin下面的程序(工具)python,这个解释器,来解释 python 脚本,来运行 python 脚本的. 2.# -*- coding: utf-8 -*- 是用来指定文件编码为 utf-8 的 详情可以参考:PEP 0263 — Defining Python Source Code Encodings 在此,详细的(主要是翻译)解释一下,为何要加这个编码声明,以及如何添加编码声明: 2.1…
#!/usr/bin/python 通常在一个.py文件开头都会有这个语句 它只在Linux系统下生效,意思是当作为可执行文件运行时调用的解释器的位置上面代码的意思是调用/usr/bin/下的Python来作为解释程序,同样,你也可以写#!/usr/bin/python3或#!/usr/bin/python2如果不是默认安装位置这个地方可能就找不到,那么文件就是报错 所以就有了另一种写法 #!/usr/bin/env python 这表示调用系统环境变量里的Python 也就是Path的环境变量…
#!/usr/bin/python和#!/usr/bin/env 的区别   #!/usr/bin/python 通常在一个.py文件开头都会有这个语句 它只在Linux系统下生效,意思是当作为可执行文件运行时调用的解释器的位置上面代码的意思是调用/usr/bin/下的Python来作为解释程序,同样,你也可以写#!/usr/bin/python3或#!/usr/bin/python2如果不是默认安装位置这个地方可能就找不到,那么文件就是报错 所以就有了另一种写法 #!/usr/bin/env…
转:http://bluedest.iteye.com/blog/1674963 在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息. 解决:1)在windows下转换: 利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行.转…
-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…
转载网址:http://blog.csdn.net/red10057/article/details/8051650 刚刚学习 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…
错误 在Linux中执行.sh脚本,出现如下异常 /bin/sh^M: bad interpreter: No such file or directory 原因 在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息. 解决 在windows下转换: 利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行. 转换方式如下(UltraEdit):File-->Conversions-->DOS->UN…
脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它 #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器.#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里.当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作.这种写法会去环境设置寻找python目录,推荐这种写法…
注意:我启动的时候遇到脚本错误 » sh startup.sh -m standalone tanghuang@bogon : command not found : command not found : command not found: 'tartup.sh: line 19: syntax error near unexpected token `in 'tartup.sh: line 19: `case `uname` in 复制代码 这是因为在windows下编写的脚本文件,放到L…
注意两点: 1.第一行:#!/bin/bash 2.将文档格式转换为unix,因为在windows下编写shell脚本回车符是\n\r,而linux下的回车符是\n,所以在linux下运行脚本的时候,需要修改下脚本的的编码格式. 以VScode为例,改变编码方式: 将CRLF变为LF,这里的CR表示回车,LF表示换行…
可能部分的人使用linux都有直接root登陆的习惯,这有很大的便利性,因为很多的命令不需要使用sudo请求root权限.但是使用root权限,所有的命令都会立即被执行,即使这个命令是对系统有害处的. 我们还知道,Linux下自带的有python,很多人不会利用里面的python,因为版本略低,但是在这里需要重点说明一下:Linux的内部命令是与python有依赖性的,而这个依赖性也就体现在低版本上. 我最近手贱把usr/bin/python直接rm了,导致的直接后果就是,系统内部命令无法使用,…