假设已经编辑好了一个包含三行内容的脚本first.sh:
第一行中的/bin/bash为此脚本的解释程序;第二行以#开头,是注释行,如果#位于行首,则整行均为注释,如果#不位于行首,那么#的后面为注释;第三行为一条可执行的Linux命令。运行脚本:
当前目录下面明明有这个文件,为什么执行它的时候,会遇到“命令没有找到”的提示呢?查看一下搜索路径和当前路径:
可见,当前路径不在搜索路径里面。如果当前路径不在搜索路径里面时,有两种解决方法。
第一种方法,可以在脚本名字前面加./,./就是指明它在当前目录下,即运行./first.sh就不会遇到提示command not found了:
command not found的提示没有了,可又遇到“没有执行权限(Permission denied)”的提示。马上会讲如何解决。
第二种方法,当前路径不在搜索路径里面时,可以把当前路径(即“.”)加入到搜索路径里面,用冒号间隔(将下面这句命令加到文件.bashrc里面,就不用每次执行它了):(www.xing528.com)
再查看环境变量PATH,PATH的尾部增加了当前路径(即“.”):
现在运行脚本:
与第一种方法的情形一样。用chmod命令增加它的执行权限,再运行,就能得到预期的结果:
当脚本没有执行权限或者当前路径不在搜索路径里时,可以使用前面讲过的点命令或者source命令,即运行source<脚本名>:
运行source加脚本名时,即使脚本有没有执行权限、当前路径在不在搜索路径里,脚本也可以正常运行。但是用source<脚本名>来运行脚本的方法使用得相对少一些,直接运行可执行脚本使用得较多。接下来还有很多运行脚本的例子,在后面的章节中,默认搜索路径已经包含了当前路径,并且默认脚本都有执行权限(默认已用chmod+x增加了执行权限)。
书上的脚本,在自己的Linux系统中有时候无法正常运行。这时候,首先需要检查自己的Bash版本是否太老(虽然计算机和服务器更新得越来越快,但这种可能性还是有的),即运行命令bash --version。然后,需要检查自己的Bash工作环境。关于环境,在接下来的章节里有进一步的阐述。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。