#!/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
Raus :
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
Ist es möglich, die Variable innerhalb der for-Schleife lokal zu verschachteln?
Ja, aber nur mit einer Funktion.
Da das integrierte Element
local
nur innerhalb einer Funktion vorhanden sein kann, müssen wir eine Funktion bereitstellen, mit der die Variablei
den Gültigkeitsbereich von global in lokal ändert:quelle
declare
macht sie auch lokal{ }
ist nicht genug. Ja, deklarieren macht eine var local innerhalb einer Funktion .