一、shell脚本的四种执行方式
(1)聊一聊bash环境
(2)四种执行方式
① 方式1
source scripts
. scripts
功能: 读入或'加载'指定的shell脚本,'依次执行'shell脚本中的所有语句
细节: 由于使用的是'当前的shell环境' -->'没有开启子shell',所以变量可以'回传'到当前shell
特点: 脚本'本身'不需要有'可执行'的权限,可'读'即可
注意: 此时脚本中定义的'幻数(解释器)'不生效,会被自动'忽略'
② 方式2
sh scripts
bash scripts
特点: 将'scripts'作为参数传给'bash'命令'来执行的,这时不是scripts'自己来执行,而是'被人家调用'执行,所以'不要'执行权限
备注: 开启一个新的'子shell环境'
补充: 由于'指定了'解释器,所以如果脚本中'有幻数'的话,'脚本中'的是不生效 -->'验证方式:脚本中执行 ps -f'
等价: sh < scripts -->'了解即可'
③ 方式3
chmod +x scripts #给可执行的权限
/dir1/../scripts #绝对路径
./scripts #相对路径
script #这种方式的执行是因为'PATH的原因',能找到文件
细节: 如果'脚本指定'解释器'就用'该解释器;'没有则用系统默认'bash!
明确: +x目的'让shell脚本'具有可执行权限,里面'命令的可执行权限'不再重要
规范: 不管上面哪种方式'最好'都在脚本中'指定解释器'
三、shell辅助信息
说明:可以在全局中配置或者用户级别配置,个人倾向于'用户级别'的配置
"""方式1:快捷键映射的方式"""
map <F5> ms:call WESTOS() <cr>'s
说明:确定F5不冲突,调用函数去执行!
"""方式2:以文件的类型判断(推荐)"""
autocmd BufNewFile *.sh,*.script,*.bash exec ":call WESTOS()"
#说明:BufNewFile --->文件已经存在或者不是以此类型结尾的都不执行此操作!
函数
func WESTOS()
call append (0,"内容1") --->第一行的内容--->形式!
说明:Author(作者)、Date(日期)、Version(版本)、Mail(邮箱)、Description(描述)
Date --->说明(显示系统的时间-->指定格式) --->".strftime("%Y-%m-%d")."
核心:shell相关的!
endfunc