shell脚本-数组
bash 支持一维数组 且不限定数组的大小。
在shell中,数组使用括号括起来,使用空格进行分割
eg: myarray=(value1 value2 value3 value4)
myarray=(a b c "d" '*')
echo ${myarray[0]} a
echo ${myarray[1]} b
echo ${#myarray[*]} 获取数组中元素的个数 5
echo ${#myarray[@]} 获取数组中元素的个数 5
shell 基本运算符
shell支持多种运算符
算数运算符,关系运算符,布尔运算符,字符串运算符,文件测试运算符
需要注意的是原生的bash不支持简单的数学运算,但是可以通过其它命令来实现。eg : awk expr
主要介绍expr
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
eg:
sum=`expr 3 + 4` 注意表达式间的空格需要保留,否则会原样输出
echo $sum 7
定义变量a b c使用不同的算术运算符来进行测试。
a=10
b=13
c=10
val=`expr $a + $b`
echo $val
echo `expr $a - $b`
echo `expr $a \* $b` #注意此处的乘法符号需要进行转义
echo `expr $a / $b` #除法运算会自动取整
echo `expr $b / 0` #不可以被0除,error: division by zero
echo `expr $b % $a` #取余
echo `expr $a != $b` #bool 类型的运算 不等得0
echo `expr $a == $c` #bool 类型的运算 相等得1
关系运算符测试
-eq 检测连个数是否相等 相等返回true
eg:
if `[ $a -eq $b ]`
then
echo '$a=$b'
else
echo '$a!=$b'
fi
-gt 大于 -lt 小于 -ge 大于等于 le 小于等于
eg:
if [ $a -gt $b ]
then
echo "$a 大于 $b"
else
echo "$a 小于 $b"
fi
shell脚本中的与或非
! 非运算
-o 或运算
-a 与运算
&& 短路与
|| 短路或
shell脚本中的字符串比较
= 检测连个字符串是否相等
-z 检测字符串长度是否为0 是 返回true
-n 检测字符串长度是否为0 是 返回false
-str 检测字符串是否为空 不为空返回true
echo 命令
字符串输出
eg: echo "this is a test file"
eg: echo this is a test file
双引号可以完全省略
显示转义字符
echo "\"it is a test\""
read 命令 接收标准输入流。
eg:
read name
echo "$name it is a test"
echo中实现转义字符的输出 需要有开启转义的标记
eg: echo -e "jake will be the \n best one"
bash 支持一维数组 且不限定数组的大小。
在shell中,数组使用括号括起来,使用空格进行分割
eg: myarray=(value1 value2 value3 value4)
myarray=(a b c "d" '*')
echo ${myarray[0]} a
echo ${myarray[1]} b
echo ${#myarray[*]} 获取数组中元素的个数 5
echo ${#myarray[@]} 获取数组中元素的个数 5
shell 基本运算符
shell支持多种运算符
算数运算符,关系运算符,布尔运算符,字符串运算符,文件测试运算符
需要注意的是原生的bash不支持简单的数学运算,但是可以通过其它命令来实现。eg : awk expr
主要介绍expr
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
eg:
sum=`expr 3 + 4` 注意表达式间的空格需要保留,否则会原样输出
echo $sum 7
定义变量a b c使用不同的算术运算符来进行测试。
a=10
b=13
c=10
val=`expr $a + $b`
echo $val
echo `expr $a - $b`
echo `expr $a \* $b` #注意此处的乘法符号需要进行转义
echo `expr $a / $b` #除法运算会自动取整
echo `expr $b / 0` #不可以被0除,error: division by zero
echo `expr $b % $a` #取余
echo `expr $a != $b` #bool 类型的运算 不等得0
echo `expr $a == $c` #bool 类型的运算 相等得1
关系运算符测试
-eq 检测连个数是否相等 相等返回true
eg:
if `[ $a -eq $b ]`
then
echo '$a=$b'
else
echo '$a!=$b'
fi
-gt 大于 -lt 小于 -ge 大于等于 le 小于等于
eg:
if [ $a -gt $b ]
then
echo "$a 大于 $b"
else
echo "$a 小于 $b"
fi
shell脚本中的与或非
! 非运算
-o 或运算
-a 与运算
&& 短路与
|| 短路或
shell脚本中的字符串比较
= 检测连个字符串是否相等
-z 检测字符串长度是否为0 是 返回true
-n 检测字符串长度是否为0 是 返回false
-str 检测字符串是否为空 不为空返回true
echo 命令
字符串输出
eg: echo "this is a test file"
eg: echo this is a test file
双引号可以完全省略
显示转义字符
echo "\"it is a test\""
read 命令 接收标准输入流。
eg:
read name
echo "$name it is a test"
echo中实现转义字符的输出 需要有开启转义的标记
eg: echo -e "jake will be the \n best one"