1

我正在尝试创建一个单词列表,其中包含相同的密码,后跟一个 4 位数字密码。该图钉经历了 10,000 种变化的每一种可能组合。所需的输出应该是这样的:

 UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ 1111
 UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ 1112
 UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ 1113

等等。

我创建了一个几乎可以得到这个的 shell 脚本,但是 awk 似乎不喜欢通过它传递一个变量,并且似乎只是在调用时打印出每个组合。这是外壳脚本:

#!/bin/bash
# Creates 10,000 lines of the bandit24pass and every possible combination
# Of 4 digits pin

USER="UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ"

PASS=$( echo {1,2,3,4,5,6,7,8,9}{1,2,3,4,5,6,7,8,9}{1,2,3,4,5,6,7,8,9}{1,2,3,4,5,6,7,8,9} | awk '{print $I}' )

for I in {1..10000};
do
        echo "$USER $PASS"
done

我虽然$I会转换$1为循环的第一次运行,并在每次迭代中向上递增。任何帮助将不胜感激。

4

2 回答 2

3

我虽然 $I 会在循环的第一次运行时转换为 $1 ,并在每次迭代中向上递增。

不,命令替换被扩展一次;就像,当你这样做时foo=$(echo)foo是一个空行,而不是对 . 的引用echo

这整个任务可以通过一次调用 printf btw 来完成。

printf 'UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ %s\n' {1111..9999}
于 2020-03-25T05:19:05.430 回答
1

提尔这个

$echo $user
UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ
$for i in {1000..9999}; do echo $user $i; done;
于 2020-03-25T05:35:41.730 回答