Bash - 如何转义 URL 中的下划线
Bash - how to escape underscore in URL
我在 bash
on macOS
中有一个小脚本,我在其中使用了一个数组,其中的日期格式为 yyyymmdd
.
,例如 19000105
在该脚本中,我将该数组的日期解析为一个循环,如:
for i in "${list[@]}"; do
wget -A pdf -nc -E -nd --no-check-certificate URL$iURL$i_tif.pdf
done
其中 wget
打开一个 URL 下载 pdf。为了使其正常工作,我需要将日期两次添加到 URL 的不同部分。
然而,URL 在我插入日期后的某一点包含一个下划线,它需要看起来像这样:19000105_tif/jpegs/
.
我以为我需要像 {$i}_tif/
这样添加大括号来转义,但是 URL 被解析为 %7B18500105%7D_tif/
,这是错误的。
如果我像 $i_tif/
一样保留大括号,URL 会像 /jpegs/
一样被解析,其中日期和之前的 tif
部分根本不会被解析完全消失了。
如何在 URL 之后正确添加带下划线的日期?
使用 ${i}
而不是 $i
应该可以解决这个问题
我在 bash
on macOS
中有一个小脚本,我在其中使用了一个数组,其中的日期格式为 yyyymmdd
.
19000105
在该脚本中,我将该数组的日期解析为一个循环,如:
for i in "${list[@]}"; do
wget -A pdf -nc -E -nd --no-check-certificate URL$iURL$i_tif.pdf
done
其中 wget
打开一个 URL 下载 pdf。为了使其正常工作,我需要将日期两次添加到 URL 的不同部分。
然而,URL 在我插入日期后的某一点包含一个下划线,它需要看起来像这样:19000105_tif/jpegs/
.
我以为我需要像 {$i}_tif/
这样添加大括号来转义,但是 URL 被解析为 %7B18500105%7D_tif/
,这是错误的。
如果我像 $i_tif/
一样保留大括号,URL 会像 /jpegs/
一样被解析,其中日期和之前的 tif
部分根本不会被解析完全消失了。
如何在 URL 之后正确添加带下划线的日期?
使用 ${i}
而不是 $i
应该可以解决这个问题