#!/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
dehors :
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
Est-il possible de rendre la variable à l'intérieur imbriquée pour la boucle locale.
Oui, mais uniquement en utilisant une fonction.
Comme la fonction intégrée
local
ne peut exister qu'à l'intérieur d'une fonction, nous devons fournir une fonction pour que la variablei
change la portée de global à local:la source
declare
rend également local{ }
n'est pas suffisant. Oui, declare rend un var local à l' intérieur d'une fonction .