SHELL基础知识
创建脚本
- 创建脚本常见的编辑器是 vi/vim
脚本的命名
- shell脚本命名与python一样,要起到见名知意的作用
注释
- 单行注释
除了首行的
#
不是注释外,其他所有的内容,以#
开头均为注释- 多行注释
多行注释有两种方式:
:<<! XXX ! 或者 :<<字符 XXX 字符
脚本的执行
脚本执行的方式有以下几种
bash /path/to/script-name 或 /bin/bash /pash/to/script-name (强推) /path/to/script-name 或 ./script-name (当前路径下执行脚本文件) source script-name 或 . script-name (注意 . )
脚本开发注意点
脚本命名是有意义的,文件后缀是.sh结尾
脚本文件首行必须是脚本的命令解释器
#!/bin/bash
- 脚本内容是从上到下执行的
变量
本地变量
本地变量是指在当前系统的某个环境下才能生效的变量,作用范围小,又包含普通变量和命令变量
普通变量
- 变量名=变量值
变量值是一个整体,中间没有特殊字符
- 变量名=’变量值’
直接输出单引号内的内容
- 变量名=”变量值”
双引号中能够解析其他的变量
命令变量
- 定义方式一:
变量名=
`命令`
注意是反引号
- 方式二:
变量名=$(命令)
全局变量
全局变量就是在当前系统的所有环境下都能生效的变量
查查全局变量的命令
env
只显示全局变量定义全局变量
变量=值
export 变量
export 变量=值
变量的查看
- 变量名
- “$变量名”
- ${变量名}
- “${变量名}” (标准使用方式)
变量的取消
unset 变量名
shell内置变量
$0 获取当前执行shell脚本文件名,包括脚本路径
$n 获取当前执行shell脚本的第n个参数值,如果n大于9,则需要${10}
$# 获取当前shell命令行中参数的总个数
$? 获取执行上一个指令的返回值(0为成功,非0失败)
字符串的截取
- 格式 ${变量名:起始位置:截取长度}
例如:
${file:0:5} 从第一个字符开始,截取5个字符
默认值相关
- ${变量名:-默认值}
如果变量有内容,则输出变量值;如果变量没有内容,那么就输出默认内容
- ${变量名+默认值}
不管变量有没有内容,都输出默认值