L'espansione aritmetica di cui probabilmente hai bisogno è questa:
a=$(( 1+2*k ))
In effetti, non è necessario utilizzare una variabile:
for k in {0..49}; do
echo "$(( 1 + 2*k ))"
done
Oppure la variabile di conteggio potrebbe essere spostata in un for ((…))
ciclo:
for (( k=0;k<50;k++ )); do
a=$(( 1+2*k ))
printf '%s\n' "$a"
done
per il ciclo ((…))
E, in tal caso, l'espansione aritmetica potrebbe anche essere spostata all'interno del ciclo for:
for (( k=0 ; a=1+2*k , k<50 ; k++)); do
printf '%s\n' "$a"
done
Oppure, per ottenere tutti i valori in un array:
for (( k=0 ; a[k]=1+2*k , k<49 ; k++ )); do :; done
printf '%s\n' "${a[@]}"
Nessuna formula
Ma probabilmente il modo più breve per evitare qualsiasi espansione aritmetica è incrementare una variabile due volte:
for (( k=0,a=1 ; k<50 ; k++,a++,a++ )); do
printf '%s\n' "$a"
done
O, ancora più semplice, basta usare seq:
seq 1 2 100