摘自菜鸟介绍:
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由0开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:
array_name=(value1 value2 ..... valuen)
使用数组
${array[index]}
例子
#!/bin/bash
array=(A B "C" D)
echo "第一个元素${array[0]}"
echo "第一个元素${array[1]}"
echo "第一个元素${array[2]}"
echo "第一个元素${array[3]}"
echo "数组长度${#array[*]}"
#字符串也一样获取长度
teststr="dsfsdfsdfsdf"
echo "字符串长度${#teststr}"
附:字符串长度获取方法
#!/bin/bash
str="ABCD"
#第一种,通过#获取
echo ${#str}
#第二种,通过awk函数length获取
echo ${str} |awk '{print length($0)}'
#第三种,通过awd函数F后的分割符获取,NF代表几个分割域,即多长
echo ${str} |awk -F "" '{print NF}'
~ 还有几种。。。没都举,先够用
shell运算
介绍
Shell 和其他编程语言一样,支持多种运算符,包括:
算数运算符
关系运算符
布尔运算符
字符串运算符
文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,
例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。使用expr计算
#!/bin/bash
a=8
b=9
echo ${a}
#注意expr 表达式接的是`
c=`expr ${a} + ${b}`
echo ${c}
echo `expr 23 + 33`
d=`expr ${a} \* ${b}`
echo ${d}
echo `expr ${d} / 2`
#注意表达式要用[],并且要有空格
if [ ${d} == ${a} ]
then echo "不相等"
fi
if [ ${a}!=${a} ]
then
echo '不想动'
fi
总结
- 关系运算符
#!/bin/bash
a=20
b=23
if [ $a -gt $b ]
then
echo "$a -gt $b: a 大于 b"
else
echo "$a -gt $b: a 不大于 b"
fi
下面类比(不再赘述,最后的实践中我们都会用到),总之,关系运算符我们那是用在判断是用来是否符合某一条件,用法一样,一般和if语句搭配使用。