#博学谷IT技术支持#
一、shell的运算符
shell变量是一种很弱的变量,默认一个变量保存一个串,shell不关心这个串的含义,所以如果要进行数学运算,必须使用如let、declare、expr、双括号等。
a=10
b=20
#求两个数的和
echo `expr $a + $b` #方式1-1,运算符两边必须留空格,而且变量必须加$
echo $(expr $a + $b) #方式1-2, 运算符两边必须留空格, 而且变量必须加$
echo $((a+b)) #方式2,运算符两边没有要求
echo $[a+b] #方式3,运算符两边没有要求 !!!!!
二、shell的流程控制语句
-
if语句
#1)以下实例判断两个变量是否相等:
#!/bin/bash
read -p "请输入a的值:" a
read -p "请输入b的值:" b
if [ $a -eq $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
#2)输入成绩,判断成绩“优”“良”“中”
#!/bin/bash
read -p "Enter your score(0-100):" n #-p参数表示给出提示信息
if [ $n -ge 85 ] && [ $n -le 100 ] ; then
echo "优"
elif [ $n -ge 70 ] && [ $n -le 84 ] ; then
echo "良"
elif [ $n -ge 60 ] && [ $n -le 69 ] ; then
echo "中"
else
echo "差"
fi
-
while语句
--------1)输出1-5之间的数字------------
#!/bin/bash
num=1
while [ $num -le 5 ]
do
echo $num
let num++
done
-------2)求1-100的和-------------
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
let sum+=i
let i++
done
echo $sum
-
case语句
#!/bin/bash
read -p "请输入你的选择(1-3):" num
case $num in
1)
echo "你选择了1"
;;
2)
echo "你选择了2"
;;
3)
echo "你选择了3"
;;
*)
echo "你选择了其他"
;;
esac
------case的穿透-----------------
#!/bin/bash
read -p "请输入你的选择(1-3):" num
case $num in
1|2|3) echo "你选择了1或2或3"
;;
*)
echo "你选择了其他"
;;
esac
三、shell的数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由0开始。
shell 数组用括号来表示,元素用空格分割开。
- 数组定义:array=("hello" "java" "mysql" "shell" "linux")
- 访问数组元素:echo ${array[3]}
- 将数组所有元素转为字符串输出:echo ${array[*]}
- 获取数组的长度:echo ${#array[*]}
- 遍历数组:
echo "----------方式1-------------"
for str in ${array[*]}
do
echo $str
done
echo "----------方式2-------------"
len=${#array[*]}
for((i=0;i<len;i++))
do
echo ${array[$i]}
done
四、select语句
select表达式是bash的一种扩展应用,擅长于交互式场合。用户可以从一组不同的值中进行选择。
#!/bin/bash
echo "你要进行什么操作?"
PS3="请输入你选择:"
select var in "启动" "停止" "重启"
do
case $var in
"启动")
#执行启动命令
;;
"停止")
#执行停止命令
;;
"重启")
#执行重启命令
esac
break;
done
echo "正在进行 $var 操作..........."
sleep 3
注意:这里PS3作为select语句的shell界面提示符,注意:PS3一定要定义在select语句的前面。
运行结果如下: