分支语句
单分支语句
if [ condition ];then
命令行...
fi
示例:
#!/bin/bash
if [ -f "file.txt" ]; then
echo "文件存在"
fi
双分支语句
if [ condition ];then
命令行...
else
命令行...
fi
示例:
#!/bin/bash
if [ -f "file.txt" ]; then
echo "文件存在"
else
echo "文件不存在"
fi
多分支语句
if [ condition ];then
命令行...
elif [ condition ];then
命令行...
else
命令行...
fi
示例:
#!/bin/bash
if [ -f "file.txt" ]; then
echo "文件存在"
elif [ -d "/etc" ]; then
echo "目录存在"
else
echo "文件和目录都不存在"
fi
case语句
类似于分支语句,case一般用于实现有多种选择的脚本(菜单选择)
语法:
case $变量 in
模式1)
# 匹配模式1时执行
;;
模式2)
# 匹配模式2时执行
;;
*)
# 默认情况
;;
esac
示例:
#!/bin/bash
read -p "输入 yes/no: " answer
case $answer in
yes|Yes|YES)
echo "你选择了是"
;;
no|No|NO)
echo "你选择了否"
;;
*)
echo "无效输入"
;;
esac
循环语句
for循环
语法:
for 变量 in 列表; do
# 循环体
done
示例:
#!/bin/bash
for num in {1..10}
do
echo ${num}
done
while循环
语法:
while [ condition ]
do
命令
done
死循环语法
while [ condition ]
do
命令
done
示例:使用while循环输出1..10
#!/bin/bash
num=1
while [ ${num} -le 10 ]
do
echo ${num}
let num++
done
示例:使用while循环计算1-100的和
#!/bin/bash
num=1
count=0
while [ ${num} -le 100 ]
do
let count+=num
let num++
done
echo ${count}
while读取文件
语法:
while read 变量
do
命令/内容
done <文件路径
示例:
#!/bin/bash
filename=/etc/passwd
while read line
do
echo ${line}
done <${filename}
循环控制语句
break
break用于终止当前循环,不会继续运行剩下的循环
示例:
#!/bin/bash
for i in {1..10}; do
if [ $i -eq 5 ]; then
break
fi
echo "当前值: $i"
done
continue
continue用于终止本次循环,进入下一次循环
示例:
#!/bin/bash
for i in {1..5}; do
if [ $i -eq 3 ]; then
continue
fi
echo "当前值: $i"
done