三,shell脚本中的基本元素
1,脚本的基本结构
脚本幻数:即脚本解释器,脚本运行的最优先指令,负责对脚本中其他命令进行解释程序主题,程序主题经常由命令,执行逻辑控制器和数据组成
注释:脚本中的说明文字,不参与脚本执行,是对脚本中代码进行说明
2,脚本中的注释方法
a)脚本中通常用"#"注释单行内容
vim lee.sh
#在vim
#!/bin/bash
#show some word
echo hello world
#:wq
sh lee.sh
#系统输出
hello world
b)多行注释
vim lee.sh
#在vim中
#!/bin/bash
: "
注释1
注释2
注释3
"
echo hello world
#:wq
sh lee.sh
#系统输出
hello world
[!note]
注意 ’ : ’ 和 ’ " ’ 之间必须输入空格
四,脚本的书写规范
1,书写规范注意事项
-
脚本文件名要见名知意,例如backup_mysql.sh
-
文本开头指定脚本解释器
#!/bin/bash
或#!/bin/sh
-
脚本中尽量不要用中文注释,防止本机或切换系统环境后中文乱码困扰
-
多使用内部命令,如:echo,eval,exec,export,read,shift,exit
-
尽量用少的命令完成动作
cat /ect/passwd | grep root #输出 root:x:0:0:root:/root:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin #结束 grep root /ect/passwd #输出 root:x:0:0:root:/root:/bin/bash operator:X:11:0:operator:/root:/sbin/nologin
-
开头加版本特权信息
# Data:创建日期 # Author:作者 # Mail:联系方式 # Function:功能 # Version:版本
-
利用缩进体现代码结构,更加有利于后期阅读
#不规范代码 #!/bin/bash for i in 1 2 3 echo $i done #规范代码 #!/bin/bash for i in 1 2 3 echo $i done
2,vim用于手写脚本的设定
在编写一个脚本时我们需要书写一些主属性信息用来利于脚本阅读
如果每次都手写这些脚本信息,很显然有做了很多重复动作
用vim的自动编写功能可以实现对于这些重复动作的简化
vim ~/.vimrc
#在vim中
set ts=2 ai et
map <F4> ms:call SHELLTITLE()<cr>'s
autocmd BufNewFile *.sh,*.script call SHELLTITLE()
func SHELLTITLE()
call append(0,"#######################################")
call append(1,"# Author: lee")
call append(2,"# Version: ")
call append(3,"# Date: ".strftime("%Y/%m/%d"))
call append(4,"# Mail: lee@westos.org")
call append(5,"# Function: ")
call append(6,"# ")
call append(7,"########################################")
call append(8,"")
call append(9,"#!/bin/bash")
endfunc