Shell 数组与双括号
数组的声明:
1. declare -a array # array被当作数组名
2. array=( value1 value2 value3 ... )
3. array=( [1]=one [2]=two [3]=three ... )
4. array[key]=value # array[0]=one,array[1]=two
数组提取:
zhuyupeng@zhuyupeng-PC ~
$ array=( [0]=one [1]=two [2]=three [3]=four )
zhuyupeng@zhuyupeng-PC ~
$ echo ${array[@]:1}
two three four
zhuyupeng@zhuyupeng-PC ~
$ echo ${array[@]:0:2}
one two
zhuyupeng@zhuyupeng-PC ~
$ echo ${array[@]:1:2}
two three
zhuyupeng@zhuyupeng-PC ~
$ echo ${array[@]:1:3}
two three four
获取数组的所有元素:
获取数组的长度:
也可以使用‘seq’来产生数组:
seq 的使用方式:
seq [OPTION]... LAST
seq [OPTION]... FIRST LAST
seq [OPTION]... FIRST INCREMENT LAST
如果使用第一种方式默认 FIRST = 1 且 INCREMENT = 1
例如:
$ a=($(seq 100))
使用方法:
语法:
((表达式1,表达式2…))
特点:
1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。
2、在双括号结构中,所有变量可以不加入:“$”符号前缀。
3、双括号可以进行逻辑运算,四则运算
4、双括号结构 扩展了for,while,if条件测试运算
5、支持多个表达式运算,各个表达式之间用“,”分开
zhuyupeng@zhuyupeng-PC ~
$ i=10
zhuyupeng@zhuyupeng-PC ~
$ ((i=$i+1))
zhuyupeng@zhuyupeng-PC ~
$ echo $i
11
for ((i=1;i<=num;i++))
shell里面是不允许if [ $a != 1 || $b = 2 ]出现的,要用
if [ $a != 1 ] || [ $b = 2 ]]
用双括号可以解决
if [[ $a != 1 || $b = 2 ]]
if [ "$a" -lt "$b" ]也可以改成双括号的形式
((“$a” < “$b”))