运算符操作
#!/bin/bash
#方法一
#运算符与数据之间一定要有空格
#做乘法运算时* 需要在*前加\
NUM=`expr 6 \* 2`
echo $NUM
NUM=`expr 1 + 2`
echo $NUM
NUM=`expr 6 / 2`
echo $NUM
#方法二
NUM2=$((1+2))
echo $NUM2
#方法三
NUM3=$[3+2]
echo $NUM3
#方法四
let NUM4=2+2
echo $NUM4
#方法五
#运算符与数据之间一定要有空格
NUM5=$(expr 5 + 2)
echo $NUM5
注意:在使用一个定义过的变量的时候需要在变量名前面加$,最好用{}括起来。
#!/bin/bash
#正确写法
string="hello world"
echo ${string}hello world
#错误写法 这样写解释器会把stringhello当成一个变量
string="hello world"
echo $stringhello world
字符操作
#!/bin/bash
#字符拼接
string="hello"
string="${string} wolrd"
echo ${string}
#获取字符串长度 输出11
#变量为数组时,${#string} 等价于 ${#string[0]}
string="hello wolrd"
echo ${#string}
echo ${#string[0]}
#截取字符串
string="hello wolrd"
#从第二个字符开始,截取6个字符
echo ${string:2:6}
数组操作
#!/bin/bash
#数组操作
#数组定义 用括号来表示数组,数组元素用"空格"符号分割开
#使用 @ 符号可以获取数组中的所有元素
array=(1 2 3 4)
echo ${array[@]}
#也可以单独定义数组的值
array[5]=5
echo ${array[@]}
#获取数组长度
echo ${#array[@]}
echo ${#array[*]}
#获取数组单个元素的长度
echo ${#array[0]}
向shell里面传递参数
#!/bin/bash
#在执行shell脚本的时候,可以向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
echo "Shell 传递参数实例!"
# "$0" 代表该shell的文件名
echo "执行的文件名:$0"
echo "第一个参数为:$1"
echo "第二个参数为:$2"
echo "传递的参数个数为:$#"
echo "输出所有的参数: $*"
echo "输出所有的参数: $@"
echo "运行脚本的ID号: $$"
关系运算符
运算符 | 说明 |
-eg | 检测两个数是否相等,相等返回true (==) |
-ne | 检测两个数是否不相等,不相等返回 true (!=) |
-gt | 检测左边的数是否大于右边的,如果是,则返回 true (>) |
-lt | 检测左边的数是否小于右边的,如果是,则返回 true (<) |
-ge | 检测左边的数是否大于等于右边的,如果是,则返回 true (>=) |
-le | 检测左边的数是否小于等于右边的,如果是,则返回 true (<=) |
! | 非运算,表达式为 true 则返回 false,否则返回 true |
-o | 或运算,有一个表达式为 true 则返回 true (|) |
-a | 与运算,两个表达式都为 true 才返回 true (&&) |
#!/bin/bash
a=10
b=5
#-eg (==)
if [ $a -eq $b ]
then
echo "$a -eg $b : a等于b"
else
echo "$a -eg $b : a不等于b"
fi
#-ne (!=)
if [ $a -ne $b ]
then
echo "$a -ne $b : a不等于b"
else
echo "$a -ne $b : a等于b"
fi
#-gt (>)
if [ $a -gt $b ]
then
echo "$a -gt $b : a大于b"
else
echo "$a -gt $b : a不大于b"
fi
#-lt (<)
if [ $a -lt $b ]
then
echo "$a -lt $b : a小于b"
else
echo "$a -lt $b : a不小于b"
fi
#-ge (>=)
if [ $a -ge $b ]
then
echo "$a -ge $b : a大于等于b"
else
echo "$a -ge $b : a小于b"
fi
#-le (>=)
if [ $a -le $b ]
then
echo "$a -le $b : a小于等于b"
else
echo "$a -le $b : a大于b"
fi
# !
if [ $a != $b ]
then
echo "$a != $b : a不等于b"
else
echo "$a == $b : a等于b"
fi
# -o (|)
if [ $a -le 6 -o $b -lt 10 ]
then
echo "$a 大于等于6 或 $b 小于10 :true"
else
echo "$a 大于等于6 或 $b 小于10 :false"
fi
# -a (&&)
if [ $a -le 9 -o $b -lt 9 ]
then
echo "$a 大于等于9 且 $b 小于9 :true"
else
echo "$a 大于等于9 且 $b 小于9 :false"
fi