shell 脚本执行,出现错误bad interpreter: No such file or directory

2019-03-10 23:31|来源: 网络

: bad interpreter: 没有那个文件或目录中,我们已经解决了这个问题,下面是一篇来自网络的文章,也可以顺便看一下:


出现bad interpreter:No such file or directory的原因

是文件格式的问题。这个文件是在Windows下编写的。换行的方式与Unix不一样,但是在VI下面如果不Set一下又完全看不出来。

解决方法:
1、上传到linux主机运行

    chmod +x back

    ./back

   错误提示如下:
    bash: ./back : bad interpreter:No such file or directory

2、错误分析:

因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符。

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

**********************************************************************

转换不同平台的文本文件格式可以用
1. unix2dos或dos2unix这两个小程序来做. 很简单. 在djgpp中这两个程序的名字叫dtou和utod, u代表unix, d代表dos
2. 也可以用sed 这样的工具来做:
sed 's/^M//' filename > tmp_filename
mv -f tmp_filename filename
来做
特别说明:^M并不是按键shift + 6产生的^和字母M, 它是一个字符, 其ASCII是0x0D, 生成它的办法是先按CTRL+V, 然后再回车(或CTRL+M)

另外, 当SHELL程序报告command not found时, 总是去检查一下你的PATH里面有没有程序要用到的每一个命令(没指定绝对路径的那种). 你这么小的程序, 可以一行一行核对

 @import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);  

相关问答

更多

如何解决“糟糕的翻译:没有这样的文件或目录”(How to solve “bad interpreter: No such file or directory”)

删除^M控制字符 perl -i -pe 'y|\r||d' script.pl Remove ^M control chars with perl -i -pe 'y|\r||d' script.pl

shell脚本:糟糕的解释器:使用pwd时没有这样的文件或目录(shell script: bad interpreter: No such file or directory when using pwd)

最好: #!/bin/bash count=0 dir="$PWD" echo "$dir" for file in "$dir"/* do if [[ -f $file ]] then ((count++)) fi done echo $count 或者一个最简单/最短的解决方案: #!/bin/bash echo "$PWD" for file; do [[ -f $file ]] && ((count++)) done echo $count Better do : ...

python Bad Interpreter错误(python Bad Interpreter error)

据我所知,如果你在shebang中有拼写错误或错误,就会发生这种问题。 我看到两种方法来解决这个问题:你可以尝试通过python调用PackageSetup.py ,比如python PackageSetup.py或者你可以打开PackageSetup.py并尝试在shebang中找到一个问题,也许它需要是一个完整的路径像/usr/bin/python这样的python解释器不仅仅是python 。 顺便说一下,你为什么不尝试通过某种包管理器安装它 - 有一个基于debian的发行版的回购 ,我很 ...

“/ bin / bash ^ M:错误的解释器:没有这样的文件或目录”从cron作业执行bash脚本时出错(“/bin/bash^M: bad interpreter: No such file or directory” error when executing a bash script from a cron job)

他看起来像unixoid和MS-Windows系统上的不同行结束编码的问题。 使用以unixoid系统为原生的行结尾\n ,而不是MS-Windows样式。 那个持有一个额外的字符,通常显示为您在错误消息( ^M )中看到的字符。 您可以使用hexeditor仔细查看相关行。 这使您可以准确地查看字符串中使用的不可打印字符。 his looks like a problem with different line end encodings on unixoid and MS-Windows li ...

bash:./loopy:/lib/ld-linux.so.2:错误的ELF解释器:没有这样的文件或目录(bash: ./loopy: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory)

引用howtodoityourself.org , 你需要安装glibc.1686 。 这样做: yum -y install glibc.i686 这只会在64位系统上发生 ,原因是系统中缺少32位库,因此您可以通过在系统上安装32位库来轻松解决此问题。 编辑: 为您 ./loopy: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such ...

IPython 3.5返回“错误的解释器:没有这样的文件或目录”(IPython 3.5 returns “bad interpreter: No such file or directory”)

如上所述,问题在于ipython3试图在/usr/local/opt/python3/bin/python3.5使用python3.5内核。 你可以通过运行来查看ipython3试图使用哪个内核: jupyter kernelspec list 然后查看python3内核路径中的kernel.json文件(在我的例子中,kernel.json的路径是: /usr/local/share/jupyter/kernels/python3/kernel.json )。 为了解决这个问题,我必须重新安装 ...

糟糕的解释器:尝试创建Gemset后没有这样的文件或目录?(bad interpreter: No such file or directory after trying to create Gemset?)

您没有安装最新的ruby-2.0.0 。 您目前安装了ruby-2.0.0-p247 。 您将不得不指定要使用的修补程序级别。 在您的情况下,您可以使用命令, $ rvm use 2.0.0-p247@railstutorial_rails_4_0 --create --default 或者,我给你的建议,就是跑 $ rvm get latest $ rvm install ruby-2.0.0 这将安装最新的补丁级别,这将允许您以前的命令正常工作。 You do not have the l ...

Crontab无法执行PHP脚本。(Crontab unable to execute PHP script. bad interpreter: No such file or directory)

在php文件中,shebang操作符不会按照我的理解工作。 你可以像下面这样重写crontab: * * * * * /usr/bin/php /var/www/html/Scripts/lib/Tasks.php 您可以根据需要更改crontab频率。 也请用下面的命令验证php是否在正确的位置: which php 谢谢。 In php file shebang operator will not work as per my understanding. You can rewrite ...

错误的解释器:没有这样的文件或目录(Bad interpreter: No such file or directory)

尝试双反斜杠: C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python35\\Scripts\\eb 我在椭圆中遇到了同样的问题,反斜杠并在Python中运行代码IDLE解决了我的问题。 Try double backslash: C:\\Users\\username\\AppData\\Local\\Programs\\Python\\Python35\\Scripts\\eb I was facing the same ...

C ++ Interpreter / Shell(C++ Interpreter/Shell)

使用地图。 使用解析器。 Boost.Spirit将是一个不错的选择。 Use a map. Use a parser. Boost.Spirit would be a good choice.