我希望使用{a..z}
填充数组。最终结果是存储在数组中的a-z
中的每个字母都可以用于以后的引用。
代码:
#!/bin/bash
#proof of concept
#echo {a..z}
#a b c d e f g h i j k l m n o p q r s t u v w x y z
#attempt 1
CHARSET=({a..z})
printf "${CHARSET[@]}"
#result: a
#attempt 2
CHARSET=({a..z})
for i in CHARSET ; do
echo "$1"
done
exit
#result a
最终,我试图测试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
aa
aaa
aaaa
...........
z
zz
zzz
zzzz
我希望能够将a-z
存储在一个数组中,然后每次使用该数组将字母数增加到四个。或者有一种更简单的方法可以在这里成功吗? (不创建上例中给出的中间文件)
答案 0 :(得分:4)
你可以附加多个大括号扩展来组合它们:
for word in {a..z}{a..z}{a..z}{a..z}
do
echo "$word"
done