Bash 来自文件中随机行的wget链接

Bash 来自文件中随机行的wget链接,bash,random,wget,Bash,Random,Wget,我正在尝试下载一个使用半可预测url的网站,这意味着url将始终以随机的五个字符的字母数字字符串结尾。我使用以下命令创建了一个带有随机字符串的crunch文件: crunch 5 5 abcdefghijklmnopqrstuvwxyz123456789 > possible_links 然后我创建了一个bash文件来调用这些行和wget链接: #!/bin/bash FILE=possible_links while read line; do wget -q --wa

我正在尝试下载一个使用半可预测url的网站,这意味着url将始终以随机的五个字符的字母数字字符串结尾。我使用以下命令创建了一个带有随机字符串的crunch文件:

crunch 5 5 abcdefghijklmnopqrstuvwxyz123456789 > possible_links
然后我创建了一个bash文件来调用这些行和wget链接:

#!/bin/bash
FILE=possible_links
while read line; do
        wget -q --wait=20 www.ghostbin.com/paste/${line}
done < $FILE
#/bin/bash
文件=可能的链接
读行时;做
wget-q--wait=20 www.ghostbin.com/paste/${line}
完成<$FILE
但很明显,它将进入aaaaa,然后是aaaab,然后是aaaac,aaaad等,有没有办法让它进入随机行?

使用
mktemp--dry run
选项:

#!/bin/bash
while true # or specify a count using something like while [ $count -le 20 ]
do
rand_str="$(mktemp --dry-run XXXXX)" # 5 Xs for five random characters
  wget -q --wait=20 www.ghostbin.com/paste/${rand_str}
# if you use count increment count ie do '((count++))' else you get infinite loop
done

通用解决方案(适用于n个随机字符)


但显然,它将转到aaaaa
而不使用
done@sjsam是的,我做了一个复制粘贴,没有抓到<$文件。它没有引号,但可能有一些有用的想法。@Matt:我的解决方案是针对这个问题的,larsks指出的链接提供了许多通用的解决方案。看一看:-)@sjsam我看了,当你发布答案时,我正在修改脚本:)
str=$(printf "%-10s" "X") # here n=10
while condition
do
rand_str=$(mktemp --dry-run ${str// /X}) 
.
.