No bash:
Isso funciona com qualquer texto e com apenas internals bash (nenhum utilitário externo chamado), portanto, deve ser rápido em strings muito curtas.
str="Stéphane áàéèëêếe"
[[ $str =~ ${str//?/(.)} ]]
(set -- "${BASH_REMATCH[@]:1}"; IFS=$'\n'; echo "$*")
Saída:
S
t
é
p
h
a
n
e
á
à
é
è
ë
ê
ế
e
Se não houver problema em alterar o IFS e alterar os parâmetros posicionais, você também poderá evitar a chamada do sub-shell:
str="Stéphane áàéèëêếe"
[[ $str =~ ${str//?/(.)} ]]
set -- "${BASH_REMATCH[@]:1}"
IFS=$'\n'
echo "$*"