首先,脚本是一个'hello world'脚本,它存储在〜/ jared / bin中 . 这是脚本:
#!bin/bash
echo "hello world"
根据这个问题here,我试过:
该文件是可执行的?我用了:
chmod 755 my_script
我运行了以下命令,这是输出:
which bash
/ bin / bash
最后,
echo $PATH
/home/jared/bin:/home/jared/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /游戏:在/ usr /本地/游戏:/ SNAP /斌:/ usr / lib中/ JVM / java的8甲骨文/斌:/ usr / lib中/ JVM / JAVA-8 ORACLE / DB /斌:在/ usr / LIB / JVM / JAVA -8- ORACLE / JRE / bin中
当我在VIM中编写脚本时,文件结尾是UNIX . 但是为了安全起见,我在Sublime和Atom中编写了额外的“hello world”脚本,并在运行它时收到了同样的错误 .
我甚至尝试在文件上运行dos2unix .
该脚本将在直接从目录运行时执行,并且如果我输入 bash hello_world
将在任何目录中执行 . 但是如果我使用 ./
它会抛出错误
我没有't know if this will help, but it seems relevant: I can use tab autocomplete on the script if I don'前言 bash
或 ./
我担心,我在这里犯了一个非常愚蠢的错误,希望有人准备好让我今天感到难以置信的愚蠢 . 谢谢!
2 回答
你的脚本的第一行应该是
它必须是
#!
后跟bash的绝对路径 . 请注意/bin
之前的斜杠 .第一行应该是这样的:
你在'!'之后忘了'/'所以系统找不到正确的(绝对)bash路径