前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Bash循环系列

Bash循环系列

作者头像
程序员小涛
发布2021-12-06 13:18:55
3080
发布2021-12-06 13:18:55
举报
文章被收录于专栏:涛的程序人生

文章目录

在一系列数字上循环

替代 seq.

代码语言:javascript
复制
# Loop from 0-100 (no variable support).
for i in {0..100}; do
    printf '%s\n' "$i"
done

在可变的数字范围内循环

替代 seq.

代码语言:javascript
复制
# Loop from 0-VAR.
VAR=50
for ((i=0;i<=VAR;i++)); do
    printf '%s\n' "$i"
done

在数组上循环

代码语言:javascript
复制
arr=(apples oranges tomatoes)

# Just elements.
for element in "${arr[@]}"; do
    printf '%s\n' "$element"
done

在具有索引的数组上循环

代码语言:javascript
复制
arr=(apples oranges tomatoes)

# Elements and index.
for i in "${!arr[@]}"; do
    printf '%s\n' "${arr[i]}"
done

# Alternative method.
for ((i=0;i<${#arr[@]};i++)); do
    printf '%s\n' "${arr[i]}"
done

循环文件的内容

代码语言:javascript
复制
while read -r line; do
    printf '%s\n' "$line"
done < "file"

循环文件和目录

不使用 ls.

代码语言:javascript
复制
# Greedy example.
for file in *; do
    printf '%s\n' "$file"
done

# PNG files in dir.
for file in ~/Pictures/*.png; do
    printf '%s\n' "$file"
done

# Iterate over directories.
for dir in ~/Downloads/*/; do
    printf '%s\n' "$dir"
done

# Brace Expansion.
for file in /path/to/parentdir/{file1,file2,subdir/file3}; do
    printf '%s\n' "$file"
done

# Iterate recursively.
shopt -s globstar
for file in ~/Pictures/**/*; do
    printf '%s\n' "$file"
done
shopt -u globstar
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 在一系列数字上循环
  • 在可变的数字范围内循环
  • 在数组上循环
  • 在具有索引的数组上循环
  • 循环文件的内容
  • 循环文件和目录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档