我刚从Windows转到Linux (Ubuntu18.04)...and,跟随教程学习bash脚本.
我写了一个简单的shell脚本
#!bin/bash
echo "Hello World"
但是当我试图运行它的时候
$ ./test1.sh
它会抛出一个错误
bash: ./test1.sh: bin/bash: bad interpreter: No such file or directory
当我运行它时使用
$ bash test1.sh
它运行得很好
我尝试搜索它并找到了许多答案,但是由于windows新行^M
和ubuntu之间的一些差异,所有这些都包含了错误.我尝试在二进制模式下打开它(不知道它是什么),但是它在bin/bash之后没有任何^M
标记。
请建议我做错了什么。
发布于 2019-07-15 22:40:48
你错过了一个前导的斜线,使它成为一条绝对的道路:
#!/bin/bash
# ↑ here
在您的例子中,shell似乎在搜索./bin/bash
。
只有当您将脚本作为程序运行时,才会考虑到shebang (以及可执行权限):
$ ./test1.sh
如果直接运行解释器并将脚本作为参数提供,则会忽略它:
$ bash test1.sh
发布于 2021-01-04 23:32:37
虽然这是一个老问题,但由于对^M问题没有任何解释,也许它是有用的:
发布于 2020-03-10 06:11:55
抱歉,让我想起了旧的话题,但我有同样的问题,并设法解决了它,不知道到底有什么帮助,但做了以下所有的事情。首先,通过命令安装Gedit:
sudo apt-get install gedit
然后确保以Unix/Linux行结尾保存脚本。在此之后,键入终端,同时在正确的文件夹中:
chmod +x filename
最后一件事是替换脚本本身。
#!bin/bash
使用
#!/bin/bash
https://askubuntu.com/questions/1158577
复制