Pedig azért van néhány jó dolog bash-ben, az egyik az általad is említett brace expansion. Efféle ciklusokat én C-szerűen írok, de nem vagyok róla meggyőződve, hogy hordozható:
for ((i=1; i<=10; i++)); do ...; done
Amit szeretek, az a here string:
cut -d: -f5 <<<"`getent passwd locsemege`"
Vagy a process substitution. Jól tud jönni akkor, amikor a pipe miatt subshellben futna a ciklus, ezért a hívó shellből nem látszanának a változók:
while read; do
...
done < <(ls -1)
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE