У меня есть скрипт bash, и когда вы вводите два целых числа, для l oop должен перечисляться все четные числа между двумя целыми числами. Недавно у меня были проблемы с for l oop, когда я вхожу, например, в 2 и 10, он начинает перечислять четные числа 4 6 8 без перечисления также 2 и 10, например, 2 4 6 8 10. Я попытался исправить это, но не повезло, кто-нибудь сможет помочь?
if [ $# -eq 2 ]; then
for((i=($1+($1%2));i<($2-3);i+=2));do #for loop lists all even numbers
if (( i % 7 == 0 )); then #checks if even number divisible by 7
echo " $i : x " #
elif (( $i % 11 == 0 )); then #else if checks if divisible by 7
echo " $i : y "
elif (( $i % 13 == 0 )); then #if divisible by 13
echo " $i : z " #prints number
fi #closes the if statement
printf "%d%s, " "$i"
done
elif [ $# -eq 0 ]; then #checks if number of arguments is 0
read -p "Please input starting and ending integer" val1 val2 #prints error message
for((i=($val1+($val1%2));i<($val2-3);i+=2));do
if (( i % 7 == 0 )); then
echo "$i : x "
elif (( $i % 11 == 0 )); then
echo " $i : y"
elif (( $i % 13 == 0 )); then
echo " $i : x "
fi
printf "%d%s, " "$i"
done