kizumi_header_banner_img

这里是幻灬十一的博客,欢迎来到我的世界

加载中

文章导读

shell脚本循环函数


avatar
11 2025年5月28日 7

运行脚本 bash 文件路径

for循环

for 循环是 Shell 里最常用的循环,用来遍历列表、重复执行命令,简单好用,新手必掌握!

一、遍历列表(最常用、最简单)

格式:

for 变量 in 列表
do
循环执行的命令
done

示例1:

!/bin/bash

循环:依次取 name 为 张三、李四、王五

for name in 张三 李四 王五
do
echo “你好:$name”
done

二、数字循环(最实用)

示例:循环 1~10

for i in {1..10}
do
echo “第 $i 次循环”
done

三、C 语言风格 for 循环(适合复杂计数)

示例:!/bin/bash

(( 初始值; 条件; 自增/自减 ))

for ((i=1; i<=5; i++))
do
echo “计数:$i”
done

四、遍历文件(实战神器)

示例:!/bin/bash

遍历所有 .txt 文件

for file in *.txt
do
echo “找到文件:$file”
done

五、遍历命令结果

示例:循环遍历所有用户

for user in $(cat /etc/passwd | cut -d: -f1)
do
echo “用户:$user”
done

六、break 和 continue

break:直接跳出整个循环

continue:跳过本次,继续下一次循环

示例:

for i in {1..5}
do
if [ $i -eq 3 ];then
continue # 跳过 3
fi
echo $i
done

while循环

一、核心语法(记住这个)

bash

运行

while [ 条件 ]
do
  循环执行的代码
done

注意[ ] 两边必须有空格


二、最简单示例:数字循环

从 1 数到 5

bash

运行

#!/bin/bash
i=1

# 当 i <=5 时,一直循环
while [ $i -le 5 ]
do
  echo "数字:$i"
  i=$((i+1))  # 必须自增,否则死循环
done


三、常用:无限循环(一直跑)

监控脚本、服务脚本必用:

bash

运行

while true
do
  echo "我一直在运行..."
  sleep 1  # 暂停1秒
done

Ctrl + C 停止。


四、最实用:读取文件每一行

工作中超级常用

bash

运行

#!/bin/bash

# 按行读取 test.txt
while read line
do
  echo "行内容:$line"
done < test.txt  从test.txt读取

六、break 和 continue

break:跳出整个循环
continue:跳过本次,继续下一次
示例:
bash
运行
i=1
while [ $i -le 5 ]
do
if [ $i -eq 3 ];then
i=$((i+1))
continue # 跳过3
fi
echo $i
i=$((i+1))
done

函数名

一、函数名命名规则(必须记住)

  1. 只能用:字母、数字、下划线
  2. 不能以数字开头
  3. 区分大小写(testTest 是两个函数)
  4. 不要用系统命令名(比如 lscdecho

二、合法函数名举例

✅ 推荐写法

bash

运行

show_time
print_info
backup_file
check_user
do_something

三、函数两种定义格式

格式 1(最常用、推荐)

bash

运行

函数名() {
  代码
}

格式 2(带 function 关键字)

bash

运行

function 函数名 {
  代码
}


四、最简单示例(一看就懂)

bash

运行

#!/bin/bash

# 定义函数:名字叫 say_hello
say_hello() {
  echo "你好,我是函数!"
}

# 调用函数:直接写函数名
say_hello

运行输出:

plaintext

你好,我是函数!


五、带参数的函数(实战)

bash

运行

#!/bin/bash

# 函数名:print
print() {
  echo "参数1:$1"
  echo "参数2:$2"
}

# 调用时传参
print 小明 20


六、命名小技巧(工作常用)

  • 显示信息 → show_xxx
  • 判断检查 → check_xxx
  • 备份文件 → backup_xxx
  • 初始化 → init_xxx

例子:

bash

运行

show_menu()
check_file()
init_config()



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码