如何在bash中遍历字母表中的前n个字母

tin*_*lyx 3 bash loops

我知道要循环使用字母表,可以做到

for c in {a..z};  do   something;  done
Run Code Online (Sandbox Code Playgroud)

我的问题是,我如何遍历第一个n字母(例如构建一个字符串),其中n是命令行中给出的变量/参数.

我搜索了SO,并且只找到了为数字做这个的答案,例如使用C风格的for循环或seq(参见例如如何迭代Bash中由变量定义的一系列数字?).我没有seq在我的环境中.

谢谢.

tha*_*guy 7

直截了当的方法是将它们粘贴在一个数组中并通过索引循环遍历:

#!/bin/bash
chars=( {a..z} )
n=3
for ((i=0; i<n; i++))
do
  echo "${chars[i]}"
done
Run Code Online (Sandbox Code Playgroud)

或者,如果您只是希望它们以破折号分开:

printf "%s-" "${chars[@]:0:n}"
Run Code Online (Sandbox Code Playgroud)