linux下执行shell脚本时报错:-bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory. 原因是windows下的文件是dos格式,即每一行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识. 查看文件格式有三种方法: 1.cat -A <filename>,如果输出结果中行末尾是^M$,则是dos格式,如果行末尾只是$,则是unix格式. 2.vim <filename…
在windows下保存了一个脚本文件,用ssh上传到centos,添加权限执行nginx提示没有那个文件或目录.shell脚本放到/etc/init.d/目录下,再执行/etc/init.d/nginx,提示多了这句/bin/bash^M: bad interpreter.网上找了资料才知道如果这个脚本在Windows下编辑过,就有可能被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A.如果你将这个脚本文件直接放到Li…
  错误原因之一很有可能是你的脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的(1). vi filename然后用命令:set ff?可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看.(2). 用joe filename如果是DOS格式的, 那么行尾会有很多绿色的…
-bash: mysql: command not found 1.vim ~/.bash_profile 最下面写 export PATH=$PATH:/usr/local/mysql/bin(你的安装bin目录) :wq 保存退出 2.source ~/.bash_profile 然后就直接可以实现了 给分吧 亲自试验过 3. >>mysql  -uroot -p >>输入密码…
一些人喜欢用vim来写linux shell script, 但是, 有的人喜欢在Windows下用一些方便的编辑器(比如鼎鼎大名的Notepad++)写好, 然后拷贝文件到linux下, 结果呢, 在执行脚本a.sh的时候, 会出现如下问题: mracale@ubuntu:~$ ./long.sh -bash: ./long.sh: /bin/bash^M: bad interpreter: No such file or directory 什么原因呢, 我们有理由怀疑是文件格式问题? 我们…
错误: /bin/bash^M: bad interpreter: 没有那个文件或目录 解决方案: 运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题,也就是linux和windows之间的不完全兼容...具体细节不管,如果验证: vim test.sh:set ff?如果出现fileforma=dos那么就基本可以确定是这个问题了.:set fileformat=unix:wq!…
参考:-bash: ./my_script: /bin/bash^M: bad interpreter: No such file or directory [duplicate] 有的时候运行.sh文件会莫名其妙报错,报错信息如下: $ ./scriptname.sh -bash: ./scriptname.sh: /bin/bash^M: bad interpreter: No such file or directory 解决办法:运行如下命令 $sed -i -e 's/\r$//' s…
今天遇到一个很诡异的问题,一直运行很正常的shell脚本失败了,只是昨天增加了一个参数而已. 报错信息: /bin/bash^M: bad interpreter: No such file or directory 后来发现root cause, 昨天修改文件的时候在windows中修改保存,然后上传的. 文件被识别成dos格式. 在此的命令模式下使用以下命令可以查看: : set ff 返回结果:  fileformat=dos 修改文件格式为Unix,使用下面的命令: :set ff=un…
运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题,也就是linux和windows之间的不完全兼容...具体细节不管,如果验证: vim test.sh:set ff?如果出现fileforma=dos那么就基本可以确定是这个问题了.:set fileformat=unix:wq OK了....... bash: ./eth0-access: /bin/bash^M: bad interpreter: 没有那个文件或目录 错误分析: 因为操作系统是w…
在学习shell中测试case参数命令代码如下 #!/bin/bash #switch测试 case $1 in     start)         echo 'start'     ;;     stop)         echo 'stop'     ;; esac 在给当前shell脚本赋予了执行权限之后,执行报错代码如下 [root@localhost sh]# ./switch.sh stop -bash: ./switch.sh: /bin/bash^M: bad interpr…