Use a expansão de contraventamento se você tiver um shell que suporte:
for d in sd{1..2}; do
( cd "$d" && dostuff )
done
Com zsh , ksh93 ou yash -o braceexpand (mas não bash ), você pode fazer
n=4
for d in sd{1..$n}; do
( cd "$d" && dostuff )
done
Pergunta relacionada: Posso usar variáveis dentro da expansão {}? sem 'eval'?
Uma variação disso seria
for (( i=1; i<=n; ++i )); do
str="sd$i"
( cd ... )
done
Este é o loop for do estilo C suportado por bash e outras shells (ainda uma extensão para o padrão POSIX).