Die arithmetische Erweiterung, die Sie wahrscheinlich benötigen, ist folgende:
a=$(( 1+2*k ))
Tatsächlich müssen Sie keine Variable verwenden:
for k in {0..49}; do
echo "$(( 1 + 2*k ))"
done
Oder die Zählvariable könnte in eine for ((…))
Schleife verschoben werden :
for (( k=0;k<50;k++ )); do
a=$(( 1+2*k ))
printf '%s\n' "$a"
done
für ((…)) Schleife
In diesem Fall könnte die arithmetische Erweiterung auch in die for-Schleife verschoben werden:
for (( k=0 ; a=1+2*k , k<50 ; k++)); do
printf '%s\n' "$a"
done
Oder, um alle Werte in einem Array abzurufen:
for (( k=0 ; a[k]=1+2*k , k<49 ; k++ )); do :; done
printf '%s\n' "${a[@]}"
Keine Formel
Der wahrscheinlich kürzeste Weg, um eine arithmetische Erweiterung zu vermeiden, besteht darin, eine Variable zweimal zu erhöhen:
for (( k=0,a=1 ; k<50 ; k++,a++,a++ )); do
printf '%s\n' "$a"
done
Oder, noch einfacher, benutze einfach seq:
seq 1 2 100