一、脚本的准备环境
1.1 #!/bin/bash 到底是什么?
#!/bin/bash
#! 开头
指定脚本的命令解释器
python 脚本
#! /bin/python3
推荐书写脚本加上
#! 开头
指定脚本的命令解释器
python 脚本
#! /bin/python3
推荐书写脚本加上
1.2 如何创建脚本的时候自动添加说明信息
vim /etc/vimrc
下面添加
autocmd BufNewFile .py,.cc,.sh,.java,*.bash exec “:call SetTitle()”
func SetTitle()
if expand(“%:e”) =~ ‘sh|bash’
call setline(1,”#!/bin/bash”)
call setline(2, “##############################################################”)
call setline(3, “# File Name: “.expand(“%”))
call setline(4, “# Version: V1.0”)
call setline(5, “# Author: lidao996”)
call setline(6, “# Organization: www.oldboyedu.com”)
call setline(7, “# Description:”)
call setline(8, “##############################################################”)
call setline(9, “”)
endif
endfunc
修改/etc/vimrc(红帽)/etc/vim/vimrc(ubt/debian)
下面添加
autocmd BufNewFile .py,.cc,.sh,.java,*.bash exec “:call SetTitle()”
func SetTitle()
if expand(“%:e”) =~ ‘sh|bash’
call setline(1,”#!/bin/bash”)
call setline(2, “##############################################################”)
call setline(3, “# File Name: “.expand(“%”))
call setline(4, “# Version: V1.0”)
call setline(5, “# Author: lidao996”)
call setline(6, “# Organization: www.oldboyedu.com”)
call setline(7, “# Description:”)
call setline(8, “##############################################################”)
call setline(9, “”)
endif
endfunc
修改/etc/vimrc(红帽)/etc/vim/vimrc(ubt/debian)
二、变量
| 变量分类 | 说明 | 应用场景与注意事项 |
|---|---|---|
| 普通变量(局部变量) | 最常用的,命名不能以数字开头,命名最好体现出变量功能 | echo $(name) 避免金庸新作 |
| 特殊变量 | $?,$n,$0,$#,$*,$@ | 判断,循环搭配使用 |
| 环境变量(全局变量) | PATH,PS1,LANG,UID | UID主要用于检查是否为root |
2.1 普通变量补充与回忆
name=asd
echo $nameasd(会报错)
echo ${name}asd(会显示asd)
echo $nameasd(会报错)
echo ${name}asd(会显示asd)
2.2特殊变量
| 常用必会特殊变量 | 说明 | 应用场景 |
|---|---|---|
| $0 | 脚本名字 | 错误输出的时候,提示用户如何使用这个脚本 |
| $n | 位置参数,命令行参数内容通过$1,$2,$…..形式传递到脚本中,实现简易交互/传参 | 脚本检查,我们都会使用,命令行与脚本的桥梁 |
| $# | 脚本参数个数 | 与判断结合使用检查参数个数 |
| $* | 取出脚本所有参数相当于$1,…..$n | 与循环搭配 |
| $@ | 取出脚本所有参数相当于$1,…..$n | 与循环搭配 |
2.2.1 $n $0

2.2.2 $n ,n>9之后会怎么样?

2.2.3 $#
#脚本参数个数等于0,则输出帮助并退出脚本
if [ $# -eq 0 ];then
echo “Usage:$0 server name”
exit 1
fi
#-eq equal 等于
#-ne not equal不等于
if [ $# -eq 0 ];then
echo “Usage:$0 server name”
exit 1
fi
#-eq equal 等于
#-ne not equal不等于
2.2.4 $* $@
他们表示所有
2.2.5 回收站脚本
使用/tmp/的准备操作
df -h /tmp/ 结果
tmp目录属于tmpfs(内存)系统重启内容消失
umount -lf /tmp
systemctl mask tmp.mount
流程:
1.创建临时目录 /tmp/随机名字/ mktemp -d
2. mv 待删除内容,临时目录
3.输出已经xxxx文件,目录放入到回收站中 回收站目录 xxxx
最后配置别名 rm==运行脚本
tmp目录属于tmpfs(内存)系统重启内容消失
umount -lf /tmp
systemctl mask tmp.mount
流程:
1.创建临时目录 /tmp/随机名字/ mktemp -d
2. mv 待删除内容,临时目录
3.输出已经xxxx文件,目录放入到回收站中 回收站目录 xxxx
最后配置别名 rm==运行脚本


2.3 环境变量
| 环境变量 | 作用 |
|---|---|
| PATH | 存放命令的位置/目录 |
| PS1 | 命令行格式 |
| LANG | language语言,字符集 |
| UID | 获取当前用户的UID搭配判断是否为root |
echo $LANG(输入)
zh_CN.UTF-8(输出)
语言.字符集
zh_CN
en_US
字符集
UTF-8 都支持
GBK中文
#临时修改
export LANG=en_US.UTF-8
#永久生效
localectl set-locale zh_CN.UTF-8
zh_CN.UTF-8(输出)
语言.字符集
zh_CN
en_US
字符集
UTF-8 都支持
GBK中文
#临时修改
export LANG=en_US.UTF-8
#永久生效
localectl set-locale zh_CN.UTF-8