什么是shell:
shell是脚本命令的解释器。
shell脚本的意义:
1.记录命令执行的过程和执行逻辑,方便以后重复执行。
2.脚本可以批量处理主机。
3.脚本可以定时处理主机。
如何创建shell脚本:
1)脚本中必须有 #!/bin/bash ,叫做幻数,表示此脚本是使用/bin/bash开解释执行的,其中‘#!’是特殊的表示字符,后面跟的是解释此脚本的shell路径。
2)vim自动添加脚本首部,为了方便了解脚本的基本信息,如创作者、创作时间等,可以在脚本前面加上一些简单的基本信息,为了简化每次在写脚本前,都要先写基本信息,可以在vim中设置,使脚本自动添加首部:
编辑vim ~/.vimrc文件:
新建脚本,会有如此显示:
如何执行shell脚本:
1)手动在环境中开启之指定解释器,输入“sh script.sh”即可。
2)直接在当前环境中运行shell中的指令不开启新的shell,输入“source script.sh”或 “. script.sh”。
3)开启脚本中指定的shell并使用此shell环境运行脚本中的指令。
当文本无可执行权限时:
编辑westos.sh脚本:
执行westos.sh脚本:
.westos.sh直接在当前环境中运行shell的指令不开启新的shell:
source westos.sh直接在当前环境中运行shell中的指令不开启新的shell
当文本有可执行权限时:
使用绝对路径:
使用相对路径:
有无可执行权限的区别:
实验环境的搭建:
无可执行权限时:
有可执行权限时:
可以看到,脚本运行时是在当前shell中再开了一个shell环境运行cat命令。
如何对脚本进行调试:
1)在运行脚本时加上 ‘-x’,表示运行脚本时有运行输出。
2)在脚本中再输入cat命令,再去运行脚本,此时脚本运行后会停止在当前的shell中,也没有其他输出。
3)若在其他更复杂的脚本运行时,遇到这种情况,就可以使用-x,查看详细输出;输出内容中,带有‘+’的表示脚本中运行的指令,而不带‘+’的表示脚本中命令运行的输出结果,此时就可以很快找出脚本停止的原因。
搭建实验环境:
可知由于脚本中写入cat命令的格式错误,运行脚本会一直处于运行状态,我们可以在运行脚本时使用-x 参数显示脚本运行过程,通过显示的信息来调试脚本,显示的信息中+表示运行的指令,不带+表示指令运行的结果,可以看到脚本在执行cat命令时出错
使用sh -x命令调试:
练习1.shell脚本: host_messages.sh显示当前主机的名称及ip登陆当前主机的用户
2)编写脚本clear_log.sh,执行此脚本后可以清空日志