变量类型
一直以为bash shell的变量是无类型的,其实也是可以指定类型的。
Administrator@DADI ~ $ declare -i num=10 Administrator@DADI ~ $ echo $num 10 Administrator@DADI ~ $ num=‘iamaint‘ Administrator@DADI ~ $ echo $num 0
通过declare的方法强制指定类型后,变量就不在接收非int的赋值操作。
常量
定义语法为:
readonly OPTION VARIABLE(s)
定义后,该变量无法重新赋值或者unset
Administrator@DADI ~ $ readonly MY_NAME=‘Administrator‘ Administrator@DADI ~ $ MY_NAME=‘ANOTHERNAME‘ -bash: MY_NAME: readonly variable Administrator@DADI ~ $ unset MY_NAME -bash: unset: MY_NAME: cannot unset: readonly variable
数组操作
两种定义方法
ARRAY=(value1 value2 ... valueN) ARRAY[0]="no.1 element"
元素
myarray=(1 2 3 4 5 6 7 8) echo ${myarray[0]} myarray[0]="new value 1"
数组元素个数
echo ${#myarray[*]}不要和下面的搞混,只会返回myarray第一个元素的长度
echo ${#myarray}
遍历
echo ${myarray[*]} for i in ${myarray[*]} ; do echo $i;done对于连续长度的也可以使用
array_len=${#myarray[*]} i=1 while [ $i -lt $array_len ] do echo ${myarray[$i]}; i=$[ $i + 1 ]; done done;
字符串操作
取子串
${VAR:OFFSET:LENGTH}
Administrator@DADI ~ $ mystring="123456789" Administrator@DADI ~ $ Administrator@DADI ~ $ echo ${mystring:2:2} 34 Administrator@DADI ~ $ echo ${mystring:2:4} 3456
替换
${VAR/PATTERN/STRING}
$ echo ${mystring/2/new2} 1new23456789