#!/bin/bash
for i in 1 2 3 4
do
# {
# local i ##gives error local: can only be used in a function
for i in 1 2 3
do
echo "inner loop ----- $i"
(( i++ ))
done
# }
echo $i
done
fuera fuera :
inner loop ----- 1
inner loop ----- 2
inner loop ----- 3
4
inner loop ----- 1
inner loop ----- 2
inner loop ----- 3
4
inner loop ----- 1
inner loop ----- 2
inner loop ----- 3
4
inner loop ----- 1
inner loop ----- 2
inner loop ----- 3
4
¿Es posible hacer que la variable dentro de anidado para el bucle sea local?

Sí, pero solo usando una función.
Como la
localfunción integrada solo puede existir dentro de una función, debemos proporcionar una función para que la variableicambie el alcance de global a local:fuente
declarelocales{ }no es suficiente. Sí, declare hace una var local dentro de una función .