if判断
基本语法
1 2 3 4 5 6 7 8
| if [ 条件判断式 ]:then 程序 fi #或者 if[ 条件判断式 ] then 程序 fi
|
举个栗子
输入一个数字,如果是1,则输出 banzhang zhen shuai,如果是2,则输出 cls zhen mei ,如果是其他,则什么都不输出
1 2 3 4 5 6 7 8
| #!/bin/bash if [ $1 -eq 1 ] then echo "banzhang zhen shuai" elif [ $1 -eq 2 ] then echo "cls zhen mei" fi
|
case 语句
基本语法
- case行尾必须是单词 “in”,每一个模式匹配必须以右括号 “)” 结束
- 双分号 “;;” 表示命令序列结束,相当于java的break
- 最后的 “*)” 表示默认模式,相当于java的default
1 2 3 4 5 6 7 8 9 10
| case $变量名 in "值 1") 如果变量的值等于1,执行程序1 ;; "值 2") 如果变量的值等于2,执行程序2 ;; *) 如果变量的值不是以上的值,则执行此程序 esac
|
举个栗子
输入一个数字,如果是 1,则输出 banzhang,如果是 2,则输出 cls,如果是其他,输出 renyao
1 2 3 4 5 6 7 8 9 10 11 12 13
| #!/bin/bash case $1 in "1") echo "banzhang" ;;
"2") echo "cls" ;;
*) echo "renyou" esac
|
For循环
基本语法1
1 2 3 4
| for(( 初始值;循环控制添加;变量变化 )) do 程序 done
|
举个栗子1
输出从1加到100的值
1 2 3 4 5 6 7 8
| #!/bin/bash
s=0 for ((i=1;i<=100;i++)) do s=$[$s+$i] done echo "cong1jiadao100:$s"
|
基本语法2
1 2 3 4
| for 变量 in 值1 值2 值3... do 程序 done
|
举个栗子2
打印所有输入参数
1 2 3 4 5 6 7 8 9 10 11
| #!/bin/bash
for i in "$*" do echo "banzhang xihuan $i" done #----------------------------------- for j in "$@" do echo "banzhang xihuan $j" done
|
while 循环
基本语法
1 2 3 4
| while[ 条件判断式 ] do 程序 done
|
举个栗子
输出从1加到100的值
1 2 3 4 5 6 7 8 9 10
| #!/bin/bash
i=1 while [ $i -le 100 ] do s=$[$s + $i] i=$[$i + 1] done
echo $s
|
read 读取控制台输入
基本语法
1 2 3 4 5 6
| read(选项)(参数) 选项: -p:指定读取值时的提示符 -t:指定读取值时的等待的时间(秒) 参数: 变量:指定读取值的变量名
|
举个栗子
提示7秒内,读取控制台输入的名称
1 2 3 4 5
| #!/bin/bash
read -t 7 -p "input your name" NAME
echo $NAME
|