A expansão aritmética de que você provavelmente precisa é esta:
a=$(( 1+2*k ))
De fato, você não precisa usar uma variável:
for k in {0..49}; do
echo "$(( 1 + 2*k ))"
done
Ou a variável de contagem pode ser movida para um for ((…))
loop:
for (( k=0;k<50;k++ )); do
a=$(( 1+2*k ))
printf '%s\n' "$a"
done
loop for ((…))
E, nesse caso, a expansão aritmética também pode ser movida para dentro do loop for:
for (( k=0 ; a=1+2*k , k<50 ; k++)); do
printf '%s\n' "$a"
done
Ou, para obter todos os valores em uma matriz:
for (( k=0 ; a[k]=1+2*k , k<49 ; k++ )); do :; done
printf '%s\n' "${a[@]}"
Nenhuma fórmula
Mas provavelmente a maneira mais curta de evitar qualquer expansão aritmética é incrementar uma variável duas vezes:
for (( k=0,a=1 ; k<50 ; k++,a++,a++ )); do
printf '%s\n' "$a"
done
Ou, ainda mais simples, basta usar seq:
seq 1 2 100