循环结构
1) 循环操作是什么?
2) 循环开始的条件
3) 循环终止的条件
for, while, util
for循环结构
for循环: 明确知道循环的次数
for 变量名称 in 变量取值; do
statement
statement
done
for 变量名称 in 变量取值
do
statement
statement
done
变量取值
数字
10 20 30
花括号展开 {1..100}
[root@shell shell]# seq 10
[root@shell shell]# seq 2 10
[root@shell shell]# seq 1 2 10
编写脚本, 计算1---100的和
#!/bin/bash
sum=0
for i in {1..100};do
let sum=$sum+$i
done
echo $sum
编写脚本, 计算1---100所有奇数的和
#!/bin/bash
sum=0
for i in `seq 100`;do
let ys=$i%2
if [ $ys -ne 0 ];then
let sum=$sum+$i
fi
done
echo $sum
中断循环语句:
break 中断整个循环
continue 中断本次循环
break
中断的例子
# !/bin/bash
sum=0
for i in `seq 100`;do
let sum=$sum+$i
if [ $sum -ge 3000 ];then
echo "$i,$sum"
break
fi
done
运行结果
student@student-VirtualBox:/tmp$ ./t1.sh
77,3003
while循环
用法1:
while CONDITION; do
statement
statement
....
change_condition_statement
done
编写脚本,计算1--100的和
# !/bin/bash
sum=0
i=1
while [ $i -le 100 ];do
sum=$((sum+i))
let i++
done
echo $sum
util循环:
util CONDITION; do
statement
statement
....
done
条件为假循环开始,条件为真循环结束
函数
定义函数
方法1:
函数名称() {
}
方法2:
function 函数名称{
}
编写脚本,提供给用户功能菜单,包括创建目录及删除目录,根据用户的需求分别实现创建、删除目录功能,创建、删除目录的功能使用函数实现
#!/bin/bash
createdir() {
if [ -d $1 ]; then
echo "目录$1已经存在"
else
mkdir -p $1
echo "目录$1创建完成."
fi
}
removedir() {
read -p "输入目录名称:" dir
if [ -d $dir ]; then
rm -rf $dir
echo "目录$dir已经删除"
else
echo "目录$dir不存在"
fi
}
showmenu() {
cat << eof
==========目录基本管理============
1 创建目录
2 删除目录
q 退出
eof
}
while true; do
showmenu
echo
read -p "请输入你的选择:" choice
case $choice in
1)
read -p "请输入目录名称:" dir
createdir $dir
;;
2)
removedir
;;
q)
exit 0
;;
esac
done
网友评论