Perluasan aritmatika yang mungkin Anda butuhkan adalah ini:
a=$(( 1+2*k ))
Bahkan, Anda tidak perlu menggunakan variabel:
for k in {0..49}; do
echo "$(( 1 + 2*k ))"
done
Atau variabel penghitungan dapat dipindahkan ke for ((…))
loop:
for (( k=0;k<50;k++ )); do
a=$(( 1+2*k ))
printf '%s\n' "$a"
done
untuk ((...)) loop
Dan, dalam hal itu, ekspansi aritmatika juga dapat dipindahkan ke dalam loop for:
for (( k=0 ; a=1+2*k , k<50 ; k++)); do
printf '%s\n' "$a"
done
Atau, untuk mendapatkan semua nilai dalam array:
for (( k=0 ; a[k]=1+2*k , k<49 ; k++ )); do :; done
printf '%s\n' "${a[@]}"
Tidak ada formula
Tapi mungkin cara terpendek untuk menghindari ekspansi aritmatika adalah dengan menambahkan variabel dua kali:
for (( k=0,a=1 ; k<50 ; k++,a++,a++ )); do
printf '%s\n' "$a"
done
Atau, lebih sederhana, cukup gunakan seq:
seq 1 2 100