Я предполагаю, что вы присваиваете значение $i
для этого примера.
if [[ a == "$i" ]]
then for this in {1..4}
do "$0" "$1" -i "$this"
done
exit
fi
Если это 1, 2, 3 или 4, он будет делать то, что всегда делает.
Если это a
, он будет циклически перебирать те, которые находятся в вызовах, и затем завершается.
Я бы добавил проверку ошибок и тому подобное, но это избавит вас от необходимости вводить цикл в командной строке.