变量
定义变量
变量命名规则和c++变量命名规则相似,只能以字母或者下划线开头,以字母下划线数字组成,并且不能为shell关键字,为变量初始化时"="号两边不能空格。
var_name=var_value
使用变量
建议在变量名加上{}后再解析
${var_name}
修改变量属性
readonly var_name
删除变量
unset var_name
位置参数
可以给shell脚本传递参数,在脚本中可以通过,$0, $1, 2... 来 获 取 传 递 进 来 的 参 数 , 在 参 数 大 于 10 时 需 要 加 大 括 号 , 帮 助 解 释 器 识 别 参 数 的 边 界 , 如 , 2...来获取传递进来的参数,在参数大于10时需要加大括号,帮助解释器识别参数的边界,如, 2...来获取传递进来的参数,在参数大于10时需要加大括号,帮助解释器识别参数的边界,如,{10}, ${11}, ${12}…
特殊变量
除了位置参数shell还标记了一些特殊变量,来标记整个shell运行环境的某些信息。
$0 # 当前脚本的文件名
$n # 标记第n个参数
$# # 标记传递给脚本参数的个数
$* # 标记所有传递的参数,当被""包含时,将所有参数作为一个参数取出。
$@ # 标记所有传递的参数,当被""包含时,将所有参数仍然分开使用
$? # 上个命令的退出状态
$$ # 返回当前进程号
数据类型
字符串
字符串是shell编程中最常用的数据类型,可以用’’,"",也可以不用引号,这里建议使用双引号,双引号中可以解析变量和特殊字符。
整数
在shell中所有的类型默认都是字符串类型,所以不手工指定变量类型是不能进行数值运算
如果要进行数值运算,可以用
(
(
运
算
式
)
)
,
或
者
((运算式)),或者
((运算式)),或者[运算式]的方式进行运算
$(($a + $b))
$[$a + $b]
数组
shell支持一维数组,不支持多维数组,并且不限定数组的大小,用括号来定义数组,每个数组元素用逗号隔开,访问数组元素可以使用下标访问。
array = (ele1, ele2, ele3...)
array[0]...
$array[index]