Arrays 使用bash用置换(a-z)填充数组

Arrays 使用bash用置换(a-z)填充数组,arrays,bash,Arrays,Bash,我希望使用{a..z}填充一个数组。最终结果是a-z中的每个字母都存储在一个数组中,以后可以用于引用 代码: 最终,我尝试测试每一个a-z的排列,长度不超过4个字符,而不需要制作一个中间文件来读取,例如 #!/bin/bash for i in {a..z}; do for j in {a..z}; do for k in {a..z}; do for l in {a..z}; do echo $i >>test.txt #1 letter echo $i$j >>tes

我希望使用{a..z}填充一个数组。最终结果是a-z中的每个字母都存储在一个数组中,以后可以用于引用

代码:

最终,我尝试测试每一个a-z的排列,长度不超过4个字符,而不需要制作一个中间文件来读取,例如

#!/bin/bash
for i in {a..z}; do
for j in {a..z}; do
for k in {a..z}; do
for l in {a..z}; do
echo $i >>test.txt #1 letter
echo $i$j >>test.txt #2 letters
echo $i$j$k >>test.txt #3 letters
echo $i$j$k$l >>test.txt #4 letters
done;done;done;done
test.txt


我希望能够将a-z存储在一个数组中,然后每次使用该数组将字母计数增加到4。还是有更简单的方法在这里取得成功?无需创建上述示例中给出的中间文件,您可以附加多个大括号展开以组合组合它们:

for word in {a..z}{a..z}{a..z}{a..z}
do
  echo "$word"
done

可以附加多个大括号展开以组合组合它们:

for word in {a..z}{a..z}{a..z}{a..z}
do
  echo "$word"
done

CHARSET={a..z}工作正常。printf的使用不正确。请参阅帮助printf.printf%s\n${CHARSET[@]},或者对于每行一个字母,请删除${CHARSET[@]}@DavidC.Rankin中的引号。感谢您快速修复我上面的代码:CHARSET={a..z}工作正常。printf的使用不正确。请参阅帮助printf.printf%s\n${CHARSET[@]}或删除${CHARSET[@]}@DavidC.Rankin中的引号,感谢您快速修复我上面的代码:@Ben:或者:printf%s\n{a..z}{a..z}{a..z}{a..z}@Cyrus感谢Cyrus提供的信息,我仍在学习,手册/帮助页面有时过于深入,我无法真正理解。特别是在没有给出工作示例的情况下:@Ben:我想这会有帮助:@Ben:或者:printf%s\n{a..z}{a..z}{a..z}@Cyrus感谢Cyrus提供的信息,我仍在学习,而man/help页面有时过于深入,我无法真正理解。尤其是在没有给出工作示例的情况下:@Ben:我想这会有所帮助:
for word in {a..z}{a..z}{a..z}{a..z}
do
  echo "$word"
done