目录
shell变量
- 环境变量
- 系统级环境变量
- shell环境加载全局配置文件的变量
- 用户级环境变量
- shell环境加载个人配置文件中的变量
- 系统级环境变量
- shell的配置文件
- 全局配置文件
- /etc/profile
- /etc/profile.d/*.sh
- /etc/bashrc
- 个人配置文件
- ~/.bash_profile
- ~/.bashrc
- 全局配置文件
- 自定义变量
- 局部变量
- 规则:
- 等号两侧不能有空格
- 变量默认类型是字符串类型
- 变量的值如果有空格,必须使用双引号括起来
- var_name="abc"
- 规则:
- 常量
- readonly var_name
- 全局变量
- export var_name
- 特殊变量
- $n
- 用于接受不了脚本文件执行时传入的参数
- $* $@
- 不使用双引号括起来
- 获取所有输入参数
- 使用双引号括起来
- "$*"
- 获取的所有参数拼接为一个字符串
- "$@"
- 获取一组参数列表对象
- "$*"
- 不使用双引号括起来
- $#
- 获取所有输入参数的个数
- $?
- 获取上一个命令的退出状态码
- $$
- 获取当前shell环境进程的ID号
- $n
- 局部变量
整数比较运算符
- 比较方式:[] 和 (())
- []
- options: -eq -gt -ge -lt -le -ne
- (())
- options : <, <=, >, >=, ==, !=
- []
字符串,数字比较运算符
- 比较方式:[] 和 [[]]
- []
- options: <, >, ==, =, !=
- 在<>需要转义,而且会发生word splitting。
- [[]]
- options: <, >, ==, =, !=
- []
布尔运算符
- 布尔运算符放在[] 或 test命令配合使用才有效
- ! 取反
- -o 或
- -a 与
逻辑运算符
- && 和 ||的运算符必须放在[[]]或(())中才有效。
- !可以用在[],[[]]中,不可用在(())
- && and
- || or
- ! not
shell flow control:if 分支语句
if commands; then
commands
elif commands; then
commands
else
commands
if
shell flow control: looping while
while commands; do commands; done
shell flow control: looping for
for variable in words; do
commands
done
shell自定义函数
# function define
[ function ] funname()
{
command
[return return_value]
}
#call function
funname para1 para2