if判断
基本语法
  • [ 条件判断式 ],中括号和条件判断式之间必须有空格

  • 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