目录
一、shell脚本的意义
二、如何创建shell脚本
三、如何执行shell脚本
四、如何对脚本进行调试
五、练习
一、shell脚本的意义
1、shell:脚本中命令的解释器
2、脚本的意义:
- 记录命令执行的过程和执行逻辑,以便以后重复执行
- 脚本可以批量处理主机
- 脚本可以定时处理主机
二、如何创建shell脚本
#!/bin/bash ##幻数
1、编辑子配置文件~/.vimrc
,自动添加说明
当新建立的文件以.sh
或.script
结尾时,调用STITLE函数,注意函数名必须以大写字母开头,否则会报错call
:调用,append
:添加,0
:第一行,1
:第二行,endfunc
:结束
"map <F4> ms:call STITLE()<cr>'s
autocmd BufNewFile *.sh,*.script call STITLE()
func STITLE()
call append(0,"################################################")
call append(1,"# Author: yyl")
call append(2,"# Version: ")
call append(3,"# Create_Time: ".strftime("%Y/%m/%d"))
call append(4,"# Mail: yyl@westos.org")
call append(5,"# Info: ")
call append(6,"# ")
call append(7,"################################################")
call append(8,"")
call append(9,"#!/bin/bash")
endfunc
2、对编写脚本时的缩进格式进行设定
sw=2
:缩进长度为2,ts=2
:1个tab表示2个空格et
:将tab转换为空格,ai
:自动缩进
vim ~/.vimrc
autocmd BufNewFile *.sh setlocal sw=2 ts=2 et ai
3、示例:
三、如何执行shell脚本
- 当脚本没有执行权限时
1、手动在环境中开启指定解释器
sh test.sh
2、直接在当前环境中运行shell中的指令不开启新的shell
source test.sh
. test.sh
3、开启脚本中指定的shell并使用此shell环境运行脚本中的指令
chmod +x test.sh
/xxx/xxx/test.sh
./test.sh
四、如何对脚本进行调试
sh -x test.sh
+
:后跟运行指令不带+
:后跟运行的输出
五、练习
练习:
1 ip_show.sh 网卡 显示当前的IP
[ -z "$*" ] &>/dev/null &&{
echo "未指定网卡,请指定"
exit
}
ifconfig "$*" &>/dev/null ||{
echo "此网卡不存在"
exit
}
ifconfig "$*" | awk '/inet\>/{ print $2 }'
2 host_messages.sh 显示当前主机的名称,ip登陆当前主机的用户
hostname: xxxxx
ipaddress: xxxx.xxxx.xxx.xxx
username: root
echo -e "hostname:\t$(hostname)"
echo -e "ipaddress:\t$(ifconfig ens33 | awk '/inet\>/{print $2}')"
echo -e "username:\t$USER"
3. clear_log.sh 执行次脚本后可以清空日志
[ "$USER" == "root" ] || {
echo "Please run $0 with root !!!"
exit
}
[ -e "/var/log/messages" ] || {
echo "No logfile here !!!"
exit
}
> /var/log/messages && {
echo "logfile is cleared !!!"
exit
}