我的印象是,如果我把这一行
#!/bin/bash在我的文件开始时,它将被识别为一个bash脚本,我可以通过它运行。
file.sh而不是
sh file.sh但在我的例子中,file.sh给出了类似于test.sh给test.sh: command not found的东西。为什么会这样呢?
我注意到我需要使用./。但我想它还是会在当前目录中查找吗?
./test.sh发布于 2011-08-13 13:50:05
首先,您需要确保文件是可执行的:
chmod +x file.sh
然后,要运行它,您需要将其放在您的路径中,即操作系统在查找要运行的文件时搜索的文件目录之一(您可以在echo $PATH中找到这些文件),或者您需要键入:
./file.sh
而不仅仅是键入file.sh。
您可以键入file.sh,如果它在您的路径中,这是我推荐的。一个好地方是在~/bin。如果文件夹不存在,就创建它,在Ubuntu下,当您登录时,它将被添加到您的路径中。
发布于 2011-08-13 13:59:12
您需要使用./file.sh启动它,因为当前dir不在路径中。
如果这还不够的话,因为你错过了对chmod a+x的建议,那么您应该从#!/bin/bash开始
bash file.sh不
sh file.sh即使sh是指向/bin/bash的符号链接。
shell检查它是如何被调用的,并且可以作为sh被调用以在兼容模式下工作,因此它可能无法处理某些bashism,如果作为bash file.sh调用这些bashism就会工作。
这不是你的问题,但如果你不知道这些微妙的区别,你可能会成为一个问题。
https://askubuntu.com/questions/56945
复制相似问题