一、shell定义
- shell:为使用者提供操作界面的软件
- 脚本中的命令的解释器
- 是保护内核的工具,内核保镖
二、shell脚本的意义
- 记录命令执行的过程和执行逻辑,以便以后重复执行
- 脚本可以批量处理主机
- 脚本可以定时处理主机
三、 创建shell脚本
1. 幻数
- 通常规范情况下,在脚本的编写过程中,会在第一行使用 #!/bin/bash 来规定执行脚本的解释器;
- 其中的 #! 就是幻数,用来标识运行体系的顶级程序,注意一般写在第一行,表示最优先执行的命令。
- /bin/bash为脚本的解释器,常用的解释器有bash,csh,tch。
2. vim自动添加脚本首部
在配置文件/etc/vimrc中添加函数
func JIATITLE()
call append(0,"#########################################") #0表示第一行内容
call append(1,"# Author: jia")
call append(2,"# Version: ")
call append(3,"# Create_Time ".strftime("%Y/%m/%d")) #stftime为时间采集器,自动采集时间,%Y%m%d分别表示年月日
call append(4,"# Mail: jia@bjyx.org")
call append(5,"# Info: ")
call append(6,"# ")
call append(7,"#########################################")
call append(8,"")
call append(9,"#!/bin/bash")
endfunc
添加完成后,可使用两种方法调用函数,在配置文件/etc/vimrc中设定调用方式
- 使用快捷键调用函数:map ms:call JIATITLE()'s
编辑完成后,在编写脚本时,可使用快捷键F4手动添加
- 自动调用函数添加:autocmd BufNewFile *.sh,*.script call JIATITLE()
注意一点:自动添加只针对新的脚本文件,对于已经编写的脚本文件,不生效。
四、 执行shell脚本
- 手动在环境中开启指定解释器:sh script.sh
此时是在shell开了一个新的子shell运行,是纯净的环境。 只不过子shell是手动指定的sh,不是幻数后写入的bash。
- 直接在当前环境中运行shell指令不开启新的shell:
(1)source script.sh
(2). script.sh
两种方法运行方式一致,只是不同的写法。
- 开启脚本中指定的shell并使用此shell环境运行脚本中的指令
(1)给定执行权限:chmod +x script.sh
(2)运行脚本:./script.sh;或者/xxx/script.sh(绝对路径)
五、调试shell脚本
命令:sh -x /xxx/script.sh