一、条件语句
a=10
b=20
#if
if [ $a == $b ]
then
echo "两数相等"
fi
写成一行:
if [ $a != $b ]; then echo "两数不相等"; fi
#if else
if [ $a == $b ]
then
echo "两数相等"
else
echo "两数不等"
fi
#if else-if else
if [ $a > $b ]
then
echo "a > b"
elif [ $a = $b ]
then
echo "a = b"
else
echo "a < b"
fi
二、for语句
for val in 1 2 3
do
echo "$val"
echo "hi"
done
写成一行:
for val in 1 2 3; do echo "$val"; echo "hi"; done;
for ((i=1;i<10;i++))
do
echo "$i"
done
三、let命令
let a=1+2
echo -e "$a\n"
b=8
let "b++" # 双引号可以省略,变量计算中不需要加上 $ 来表示变量
echo "$b"
四、while循环
4.1 一般格式
a=1
while (( $a < 5 ))
do
echo "$a"
let "a++"
done
4.2 while循环可用于读取键盘信息
echo '按下 <CTRL-D> 退出'
echo -n '输入你最喜欢的网站名: '
while read FILM
do
echo "是的!$FILM 是一个好网站"
done
4.3无限循环,三种方法
while :
do
echo "good!"
done
------------------
while true
do
echo "good!"
done
------------------
for (( ; ; ))
do
echo "good!"
done
五、until循环,与while相反,不满足条件就执行循环体
a=0
until [ $a -gt 5 ] # 等同于 until (( $a > 5 ))
#until (( $a > 5 ))
do
echo "$a"
a=`expr $a + 1`
done
六、case
c=3
case $c in
1) echo "you choose 1"
echo "congra"
;;
2) echo "you choose 2"
echo "congratulation"
;;
*) echo "your choose not 1-2"
;;
esac # case反过来 esac作为结束
read aNum # 键盘输入
echo "$aNum" # 打印输入的值
七、break,跳出所有循环
while :
do
echo -n "输入值:"
read aNum
case $aNum in
1|2|3|4|5) echo "输入值为 $aNum "
;;
*) echo "输入值不在1-5之间,game over!"
break
;;
esac
done
# echo -n 不换行输出
八、continue,跳出当前循环
while :
do
echo -n "输入值:"
read aNum
case $aNum in
1|2|3|4|5) echo "输入值为 $aNum "
;;
*) echo "输入值不在1-5之间"
continue
echo "game over!"
;;
esac
done
九、shell函数
9.1.函数定义
demoFun() {
echo -e "This is my first function!\n"
}
9.2.有返回值
#函数定义
add() {
echo -n "1th num:"
read num1
echo -n "2th num:"
read num2
return $(($num1 + $num2))
}
add # 函数调用
echo "num1 + num2 = $?" # 调用该函数后通过 $? 来获得返回值
9.3.带参数
pare() {
echo "1th $1"
echo "2th $2"
}
pare 3 5 # 调用时带参数
3.输出重定向
history > 1
# 将history输出的内容替换1中的内容
history >> 1
# 将history输出的内容放到1中,将新内容添加在文件末尾