目录
1.什么是shell
脚本中命令的解释器
###############################
# Author: westos
# Version 1.0
# Create_Time: 2021/08/14
# Mail: westos@qwer.org
# Info:
#
#
###############################
在脚本中通常要有些脚本信息,这些信息可以通过对vim的设定使其自动出现
2.shell脚本的意义
记录命令执行的过程和运行逻辑,以便以后进行重复执行
脚本可以批量处理主机
脚本可以定时处理主机
3.自动添加脚本首部
vim /etc/vimrc #此文件为全局配置文件对于所有用户生效
vim ~/.vimrc #在用户家目录中编辑.vimrc文件也可以控制vim的运行但只针对当前用户
ts=2 #指定tab键为两个空格
et #把tab转换为空格
ai #自动缩进
autocmd BufNewFile *.sh,*.script call SHELLTITLE() #当调用新的.sh或.script结尾的的文件自动调用SHELLTITLE
。strftime(“%Y/%m/%d”) #自动获取当前时间,多段内容用.隔开
#!/bin/bash #指定脚本的运行环境
vim ~/.vimrc
set nu ts=2 et ai
autocmd BufNewFile *.sh,*.script call SHELLTITLE()
func SHELLTITLE()
call append(0,"###############################")
call append(1,"# Author: westos")
call append(2,"# Version 1.0")
call append(3,"# Create_Time: ".strftime("%Y/%m/%d"))
call append(4,"# Mail: westos@qwer.org")
call append(5,"# Info: ")
call append(6,"#")
call append(7,"#")
call append(8,"###############################")
call append(9,"")
call append(10,"#!/bin/bash")
endfunc
4.执行shell脚本
source test.sh = . test.sh #在当前shell运行脚本
sh test.sh #用指定的shell运行脚本
test.sh #在脚本中指定的shell运行shell命令
5.脚本的调试
sh -x /mnt/test.sh #调试脚本
+##### #命令
##### #命令执行的输出
练习
1.ip_show.sh 网卡 #显示ip[ -z "$1" ] && {
echo "Error:input interface"
exit
}
ifconfig $1 &> /dev/null || {
echo $1 is not find
exit
}&&{
ifconfig $1 | awk '/\<inet\>/{print $2}'
}
2.host_message.sh #显示当前主机的名称,ip登陆当前主机的用户
echo "hostname: 'hostname'"
echo "ipaddress: `ifconfig ens3|awk '/inet\>/{print $2}'`"
echo "username: $USER"
3.clear_log.sh #执行脚本清空日志
#!/bin/bash
[ "$USER" != "root" ] && {
echo "Error:run script with root"
exit
}
[ ! -e "/var/log/messages" ] && {
echo "Error : not found log file"
exit
}> /var/log/messages && {
echo /var/log/messages is cleaned !
}