shell中不建议使用驼峰命名法
推荐使用下划线链接字母小写
1.shell脚本的书写规范
给shell脚本起名时:filename.sh喜欢加一个.sh后缀,帮助我们提示该文件类型
通常在第一行写声明,声明当前的设立了脚本使用哪个命令解释器去解释:#!/bin/bash
除第一行外的以#开头的行为都是注释
·shell脚本的作者
·shell脚本的创建时间
·作者联系邮箱
vim /root/.vimsr
进入后 :set paste 解决复制进来的代码不整齐的问题
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,"#Versiion:c1.0")
call setline(5,"#Email:3376128886@qq.com")
call setline(6,"#Created time:".strftime("%F %T"))
call setline(7,"#Description:")
call setline(8,"##############################")
call setline(9,"")
endif
endfunc
粘贴此代码用于每次进入自动生成脚本信息
2.shell脚本的的执行方式
交互式执行:和执行正常命令没有差别
在命令行上写shell
通过文件方式执行:在文件中书写shell,然后执行文件
例:
vim first_shell.sh
echo "Hello World"
#保存被退出
bash first_shell.sh
输出:Hello World
执行脚本的具体方式:
1. ./script_name 方式
./filename.sh:产生一个子进程,用子进程取运行脚本,运行脚本使用哪个命令解释器依赖于我们
在脚本中声明的那个命令解释器。需要具备执行权限
chmod +x filename.sh //更改可执行权限
2. bash方式:
产生产生一个子进程,用子进程取运行脚本,运行脚本的命令解释器依赖于你脚本前使用的时sh 、bash:sh -> 命令解释器就是sh, bash -> 命令解释器就是bash,脚本中虽然声明了使用哪个命令解释器,但是会忽略(因为我指定 了使用哪个命令解释器取执行脚本)
不需要执行权限
3. source 或 . filename.sh
读取shell程序文件,一次执行其中的语句,没有创建新的shell进程。不需要执行权限
使用声明的命令解释器
4. .filename.sh
与source一样,使用当前进程执行
3.shell脚本的退出码
查看退出码:echo $?
0:代表正常执行完成
非0:执行失败
退出码取值范围:0-255
可以自己指定退出码:脚本后加 exit 想设置的退出码数字