首页 > 解决方案 > 带有包含嵌入变量的输入的 Bash for 循环

问题描述

我正在尝试编写一个 shell 脚本,用于wget从遵循特定数字模式的 url 批量下载文件。

可以理解,来自用户输入的 url 必须包含变量$i

dl.sh http://some/url/$i/some/url 1 9

这会从最终循环产生重复的结果,因为$i将在向下传递到循环之前进行扩展。

http://some/url/9/some/url
http://some/url/9/some/url
...
http://some/url/9/some/url

有没有办法让这个 shell 脚本工作?

源代码:

#!/bin/bash
# dl.sh url | index_from | index_to

for i in $(seq $2 $3)
do
  echo ${1} # replace with wget for actual download. 
done

预期结果:

http://some/url/1/some/url
http://some/url/2/some/url
http://some/url/3/some/url
...
http://some/url/9/some/url

标签: bashfor-loop

解决方案


推荐阅读