关于linux:my_script抛出bash的错误:/ home / usr / bin / my_sript:bin / bash / bad interpreter:没有这样的文件或目录。 我该如何更正此错误?

my_script throwing an error of bash: /home/usr/bin/my_sript: bin/bash/ bad interpreter: No such file or directory. How can I correct this error?

首先,脚本是一个'hello world'脚本,它存储在?/ jared / bin中。这是脚本:

1
2
#!bin/bash
echo"hello world"

基于这个问题,我试过:

该文件是可执行的?我用了:

1
chmod 755 my_script

我运行了以下命令,这是输出:

1
which bash

/bin/bash

最后,

1
echo $PATH

/home/jared/bin:/home/jared/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin

当我在VIM中编写脚本时,文件结尾是UNIX。但是为了安全起见,我在Sublime和Atom中编写了额外的"hello world"脚本,并在运行它时收到了同样的错误。

我甚至尝试在文件上运行dos2unix。

该脚本将在直接从目录运行时执行,如果我键入bash hello_world,将在任何目录中执行
但是,如果我使用./,它会抛出错误

我不知道这是否会有所帮助,但似乎相关:如果我不在bash./前面,我可以在脚本上使用tab autocomplete

我担心,我在这里犯了一个非常愚蠢的错误,希望有人准备好让我今天感到非常愚蠢。谢谢!


你的脚本的第一行应该是

1
2
#!/bin/bash
  ^

它必须是#!,然后是bash的绝对路径。 注意/bin之前的斜杠。


第一行应该是这样的:

1
#!/bin/bash

你在'!'之后忘了'/' 所以系统找不到正确的(绝对)bash路径