不同的运行方式

# 开启一个子进程去执行脚本
bash ./file.sh

# 使用系统默认的解释器去执行脚本,会利用到 sha-bang, 使用 #! 标注的程序去运行
./file.sh

# 在当前进程中执行
source ./file.sh
. file.sh 

变量

变量的作用范围

默认情况下变量只对当前 bash 的进程有效,子进程无效。如果想要子进程有效,需要使用 export var=123 的方式

预定义变量

set  # 查看预定义变量

# $? 显示上一条命令的执行结果
# $$ 显示当前进程 pid
# $0 显示当前进程名称
# $1,$2 ... ${10} 第一个参数... 第10个参数
# ${2-_}  读入时如果没有值,使用默认值 _
# $* 取到所有的位置参数
# $# 获取位置参数的个数

预置的配置文件的加载顺序

数组

IPTS=(1 2 3)
echo ${IPTS[@]}  # 显示所有元素
echo ${#IPTS[@]}  # 显示数组元素个数
echo ${IPTS[0]}  # 显示第一个元素

变量计算

let a=10  # 会被当为数字计算
(( a=10 ))  # 等同于 let
(( a++ ))
echo $((10+20))

# 对于这种数字变量,使用 > < 判断需要使用 [[ ]] 才行
# 使用 -gt 这种方式就之用 [ ] 即可