本文目录导读:

可以,绝大多数实用脚本都支持批量执行,具体取决于你如何调用它们,下面是几种常见的批量执行方式:
使用循环(最通用)
如果你有一个脚本 process.sh 需要处理多个文件或参数,直接在命令行或另一个脚本里写循环:
# 对当前目录所有 .txt 文件执行脚本
for file in *.txt; do
bash process.sh "$file"
done
# 或者对固定列表执行
for id in 101 102 103 104; do
python my_script.py --id "$id"
done
利用并行加速(批量处理大量任务时很好用)
如果脚本彼此独立,可以用 xargs 或 parallel 同时跑多个进程,节省时间。
示例:使用 xargs -P 并行执行
# 从 urls.txt 每行读一个链接,用 10 个进程同时下载
cat urls.txt | xargs -P 10 -I {} wget {}
示例:使用 GNU Parallel
# 对 1000 个图片并行压缩
parallel -j 8 "python compress.py {}" ::: *.jpg
脚本内自带的批量参数
很多实用脚本可以接收通配符或参数列表。
# 批量删除超过30天的日志 find /var/log -name "*.log" -mtime +30 -delete # 批量重命名(用rename命令) rename 's/\.txt$/.md/' *.txt
结合 find 和 exec(最适合文件处理)
# 对每个 .csv 文件执行脚本
find . -name "*.csv" -exec bash process.sh {} \;
如果脚本接受管道输入(从文件或命令读参数)
# 从 id_list.txt 逐行读,每行执行一次
cat id_list.txt | while read line; do
python my_script.py "$line"
done
需要注意的点:
- 资源冲突:如果多个进程写同一个文件或数据库,需要加锁或避免并行。
- 环境依赖:确保每个执行实例都有正确的环境变量、工作目录。
- 错误处理:建议在循环中加入
set -e或判断返回值,避免一个失败中断全部。 - 输出归并:并行执行时输出会交错,可以用
--line-buffer(parallel)或重定向到不同文件。
绝大多数实用脚本都可以批量执行,核心思路就是:
- 循环处理(最安全)
- 并行处理(大幅提速)
- 管道/重定向批量传参
如果你有具体的脚本场景(比如处理图片、爬虫、批量部署),告诉我,我可以给你更精准的批量执行写法。