if
if基本语法
if [ condition ]; then
# 命令
fi
条件测试语法
1. 使用 [ ]
if [ condition ]; then
# 命令
fi
示例
a=10
b=20
if [ $a -eq $b ]; then
echo "相等"
fi
if [ $a -ne $b ]; then
echo "不等"
fi
if [ $a -gt $b ]; then
echo "大于"
fi
if [ $a -lt $b ]; then
echo "小于"
fi
if [ $a -ge $b ]; then
echo "大于等于"
fi
if [ $a -le $b ]; then
echo "小于等于"
fi
2. 使用 [[ ]]
if [[ condition ]]; then
# 命令
fi
示例
#!/bin/bash
file="/etc/passwd"
if [[ -f "$file" ]]; then
echo "文件 $file 存在"
echo "文件大小: $(wc -l < "$file") 行"
else
echo "文件 $file 不存在"
fi
if-elif-else 结构
if [[ condition1 ]]; then
echo "条件1成立"
elif [[ condition2 ]]; then
echo "条件2成立"
else
echo "所有条件都不成立"
fi
示例
#!/bin/bash
read -p "请输入文件名: " filename
if [[ "$filename" == *.txt ]]; then
echo "这是文本文件"
elif [[ "$filename" == *.jpg || "$filename" == *.png ]]; then
echo "这是图片文件"
elif [[ "$filename" =~ \.py$ ]]; then
echo "这是Python文件"
else
echo "未知文件类型"
fi
case
基本语法
case 变量 in
模式1)
命令1
;;
模式2)
命令2
;;
模式3|模式4)
命令3
;;
*)
默认命令
;;
esac
基本示例
示例1:简单的字符串匹配
#!/bin/bash
read -p "请输入一个水果名: " fruit
case $fruit in
apple)
echo "这是苹果"
;;
banana)
echo "这是香蕉"
;;
orange)
echo "这是橙子"
;;
*)
echo "未知水果"
;;
esac
示例2:系统服务管理脚本
#!/bin/bash
case $1 in
start)
echo "启动服务..."
# 启动命令
;;
stop)
echo "停止服务..."
# 停止命令
;;
restart)
echo "重启服务..."
# 重启命令
;;
status)
echo "服务状态..."
# 状态查询
;;
*)
echo "用法: $0 {start|stop|restart|status}"
exit 1
;;
esac
for
1. 基本语法
第一种:遍历一个列表
bash
for 变量 in 值1 值2 值3 ...
do
命令
done
第二种:类C风格的循环(常用于数字循环)
bash
for (( 初始值; 条件; 步进 ))
do
命令
done
2. 遍历列表
示例1:直接列出所有值
for fruit in apple banana orange
do
echo "I like $fruit"
done
示例2:遍历命令输出
# 遍历当前目录下的.txt文件
for file in *.txt
do
echo "文本文件: $file"
done
示例3:遍历位置参数
#!/bin/bash
# 假设脚本名为script.sh,执行: ./script.sh arg1 arg2 arg3
for arg in "$@"
do
echo "参数: $arg"
done
1287

被折叠的 条评论
为什么被折叠?



