目录
SHELL 脚本编写规范 :
脚本开头 :
# 脚本第一行 : #! /bin/bash 或 #!/bin/sh ( 脚本解释器 )
# 程序段开头需要加 版本版权信息 ,例如 :
# Date 创建日期
# Author : 作者
# Mail : 联系方式
# Function : 功能
# Version : 版本
自动增加版权信息 :
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1,"#!/bin/bash")
call setline(2,"##########################################")
call setline(3, "# File Name: ".expand("%"))
call setline(4, "# Author: SanMao_HaiZi")
call setline(5, "# Email: SanMao_HaiZi@163.com ")
call setline(6, "# Organization:http://www.cnblogs.com/SanMao_HaiZi/")
call setline(7, "# Cerated Time : ".strftime("%F %T"))
call setline(8, "# Version: V1.0")
call setline(9, "# Description:")
call setline(10, "########################################")
endif
endfunc
至此,每次新建脚本都会自动生成版本版权信息
注 : 可以使用 bash -n 脚本名.sh , 进行语法检错,且不执行脚本
SHELL 脚本的注释 :
单行注释 : #
# 命令 ...........
# 命令 ...........
多行注释 : :<<' ' 或 <<
:<<'XXXXXX'
comand1
comand2
.......
xxxxxx
注 : XXXXXX 可以是字符或者数字, 单引号也可以不加( 但最好建议还是加上 )
示例 :
SHELL 脚本执行 :
方法一 :
使用 sh 或 bash 命令执行脚本 ~
===>>>
不需要执行权限 ( 建议使用 ),脚本中也不需要指定脚本解释器
示例 :
[root@server test]# bash 99_chengfa.sh
[root@server test]# sh 99_chengfa.sh
注 : 可以使用 bash -n 脚本名.sh , 进行语法检错,且不执行脚本
方法二 :
切换到脚本所在目录 使用 ./执行脚本,但需要添加脚本执行权限
提示没有执行权限 ,我们要加执行权限
===>>>
[root@server test]# chmod +x 99_chengfa.sh
方法三 :
绝对路径执行,但需要增加执行权限
[root@server ~]# /root/test/99_chengfa.sh
注 : 上示执行成功是 直接用的 绝对路径 来执行的;
执行成功有一个很关键的点就是, 脚本已经有了 执行权限~!!!
===>>>
如果没有执行权限,是不能够执行的 ~!!!
方法四 :
使用点(.) 或 source 执行脚本,不需要执行权限
[root@server test]# . 99_chengfa.sh
[root@server test]# source 99_chengfa.sh
总结 :
方法 1,2,3
===>>>
都是启动一个 子SHELL ,在 子SHELL 中执行脚本,脚本中设置的变量在脚本执行完毕后不会保存。
方法4
===>>>
是在当前 SHELL 执行的,不需要启动一个子 SHELL,脚本中设置变量 在执行完毕后会保存下来。