You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中遍历变量实现批量生成文件

不用数组遍历Bash变量生成文件的方法

方法1:手动指定变量名列表(简单直接)

把你的脚本修改成下面这样,直接列出城市变量名,用间接引用获取变量值:

API="link to API"

# 城市经纬度变量(注意补上原脚本里miami缺失的闭合引号)
newyork="latitude-longitude"
boston="latitude-longitude"
miami="latitude-longitude"

# 遍历每个城市变量名
for city_name in newyork boston miami; do
    # 间接引用:通过变量名拿到对应的值
    coords="${!city_name}"
    # 生成对应文件名的文件
    curl -s "$API$coords" > "${city_name}.txt"
done

这种方式适合变量数量不多的情况,直观好维护。

方法2:自动提取城市变量(适合变量较多时)

如果城市变量很多,不想手动列,可以用declare命令筛选出目标变量,再循环处理:

API="link to API"

# 城市经纬度变量
newyork="latitude-longitude"
boston="latitude-longitude"
miami="latitude-longitude"

# 筛选出所有小写字母命名的普通变量(匹配你的城市变量格式)
for city_name in $(declare -p | grep -E '^declare -- [a-z]+=' | cut -d' ' -f3 | cut -d'=' -f1); do
    coords="${!city_name}"
    curl -s "$API$coords" > "${city_name}.txt"
done

注意事项

  • 原脚本中miami="latitude-longitude缺少闭合引号,一定要补上,否则脚本会报错。
  • 间接引用${!var}是Bash的特性,确保你的脚本用bash执行(不要用sh)。

内容的提问来源于stack exchange,提问作者Arawelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:20:49