linux shell 条件语句和循环结构

条件语句和循环结构在Shell脚本中用于控制程序的流程,让你可以根据条件决定执行不同的代码块,或者重复执行某些代码。下面是条件语句和循环结构的一些示例和说明:

**条件语句:**

1. **if语句**:

使用 `if` 语句根据条件执行不同的代码块。

if [ "$age" -gt 18 ]; then
echo "成年"
else
echo "未成年"
fi

2. **if-elif-else语句**:

使用 `elif` 可以添加多个条件分支。

if [ "$score" -ge 90 ]; then
echo "优秀"
elif [ "$score" -ge 80 ]; then
echo "良好"
else
echo "一般"
fi

3. **case语句**:

使用 `case` 语句根据不同值进行匹配。

case $day in
"Mon")
echo "星期一"
;;
"Tue")
echo "星期二"
;;
*)
echo "其他"
;;
esac

**循环结构:**

1. **for循环**:

使用 `for` 循环遍历一系列值。

for i in {1..5}; do
echo "Number: $i"
done

2. **while循环**:

使用 `while` 循环在条件满足时重复执行代码块。

count=0
while [ "$count" -lt 5 ]; do
echo "Count: $count"
((count++))
done

3. **until循环**:

使用 `until` 循环在条件不满足时重复执行代码块。

count=0
until [ "$count" -ge 5 ]; do
echo "Count: $count"
((count++))
done

4. **break和continue**:

使用 `break` 可以退出循环,使用 `continue` 可以跳过当前循环。

for i in {1..10}; do
if [ "$i" -eq 5 ]; then
break
fi
echo "Number: $i"
done

继续介绍条件语句和循环结构的内容:

**循环结构:**

5. **嵌套循环**:

可以在循环内部嵌套另一个循环。

for i in {1..3}; do
for j in {1..3}; do
echo "i: $i, j: $j"
done
done

6. **循环控制变量**:

使用 `break` 和 `continue` 来控制循环的执行。

for i in {1..5}; do
if [ "$i" -eq 3 ]; then
continue
fi
echo "Number: $i"
done

7. **无限循环**:

使用 `while true` 或 `for (( ; ; ))` 来创建无限循环。

while true; do
echo "无限循环"
sleep 1
done

8. **循环读取文件内容**:

使用 `while read` 从文件逐行读取内容。

while IFS= read -r line; do
echo "行内容: $line"
done < input.txt

9. **循环数组和关联数组**:

遍历数组和关联数组的元素。

FRUITS=("Apple" "Banana" "Orange")
for fruit in "${FRUITS[@]}"; do
echo "$fruit"
done

declare -A COLORS
COLORS["Red"]="#FF0000"
COLORS["Green"]="#00FF00"
for key in "${!COLORS[@]}"; do
echo "$key: ${COLORS[$key]}"
done

10. **计数循环**:

使用 `seq` 命令来创建计数循环。

for i in $(seq 1 5); do
echo "Number: $i"
done

11. **循环计数器**:

可以使用计数器来追踪循环的次数。

count=0
while [ "$count" -lt 5 ]; do
echo "Count: $count"
((count++))
done

12. **until循环**:

使用 `until` 循环在条件不满足时重复执行代码块。

count=0
until [ "$count" -ge 5 ]; do
echo "Count: $count"
((count++))
done

13. **break和continue**:

使用 `break` 可以退出循环,使用 `continue` 可以跳过当前循环。

for i in {1..10}; do
if [ "$i" -eq 5 ]; then
break
fi
echo "Number: $i"
done

**条件语句:**

4. **测试文件和目录**:

使用 `-d` 判断是否为目录,`-f` 判断是否为普通文件,`-e` 判断文件是否存在等。

if [ -d "$dir" ]; then
echo "是目录"
elif [ -f "$file" ]; then
echo "是文件"
fi

5. **逻辑运算符**:

在条件判断中,可以使用逻辑运算符来组合多个条件。
- 逻辑与:`-a` 或 `&&`
- 逻辑或:`-o` 或 `||`
- 逻辑非:`!`

示例:

if [ "$age" -gt 18 -a "$gender" == "male" ]; then
echo "成年男性"
fi

6. **算术运算符**:

在数学运算中,可以使用算术运算符进行计算。
- 加法:`+`
- 减法:`-`
- 乘法:`*`
- 除法:`/`
- 取余:`%`

示例:

result=$((num1 + num2))
posted @ 2023-08-20 15:20  乐瓜乐虫  阅读(80)  评论(0编辑  收藏  举报