携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情
shell script是一种拥有更强大功能的,类似程序撰写的,不需要经过编译就能够运行的,通过shell功能编写的一个程序,它是使用纯文本写成的,针对shell的脚本。
之前我们讲解过shell script的部分内容,今天我们讲讲他的实际使用,在编写shell script时,我们要注意语法规则,shell命令的执行是从上而下、从左而右进行的。编写也是如此,它同其他编写语言一样,对空格不敏感。
脚本的运行是有差异的,不论是使用绝对路径,相对路径还是path内的路径来执行脚本,这个脚本都会使用一个新的bash环境来运行脚本内的命令。我们说,使用这种执行方式时,脚本本质上还是在子程序bash内运行的,当子程序执行完毕后,在里面的各项变量还有动作都会结束,它们不会传回父程序里面。
[root@RHEL7-1 scripts]# echo $firstname $lastname
[root@RHEL7-1 scripts]# sh sheelz.sh
Please input your first name: zz
[root@RHEL7-2 scripts]# echo $firstname $lastname
脚本在运行时出现问题了怎么办呢,这时候非常麻烦,那么我们如何调试呢?可以不需要通过直接运行脚本就可以来判断是否有问题吗,我们可以以bash的相关参数来进行判断。例如:
[root@RHEL7-1 ~]# sh [-nvx] scripts.sh
我们可以使用以下命令:
-n是不执行脚本,只查询语法的问题。
-v在执行脚本前,先输出。
-x将使用到的脚本内容显示到屏幕上。
下面我们举个例子来测试一下shz21.sh这个脚本有没有语法问题。
[root@RHEL7-2 ~]# sh -n shz21.sh
我们执行上面命令,如果没有报错,就说明这个脚本没有语法的问题。我们还可以使用-v命令预输出一下脚本,在屏幕上查看有无错误。调试的方法还要很多种,我们只需要明白一个原则,就是尽可能的简便我们的脚本程序编写。方便开发人员使用,调试。
好了,今天关于shell script的讲解就到这里了。