OnWorks Linux en Windows Online WorkStations

logo

Gratis online hosting voor werkstations

<Vorige | Inhoud | Volgende>

Lokale variabelen

In de scripts die we tot nu toe hebben geschreven, zijn alle variabelen (inclusief constanten) geweest globale variabelen. Globale variabelen blijven gedurende het hele programma bestaan. Dit is prima voor veel dingen, maar het kan soms het gebruik van shell-functies bemoeilijken. Inside shell-functies zijn vaak wenselijk om te hebben lokale variabelen. Lokale variabelen zijn alleen toegankelijk binnen de shell-functie waarin ze zijn gedefinieerd en houden op te bestaan ​​zodra de shell-functie eindigt.

Het hebben van lokale variabelen stelt de programmeur in staat variabelen te gebruiken met namen die mogelijk al bestaan, hetzij in het script globaal of in andere shell-functies, zonder zich zorgen te hoeven maken over mogelijke naamconflicten.

beeld

Hier is een voorbeeldscript dat laat zien hoe lokale variabelen worden gedefinieerd en gebruikt:


#! / Bin / bash


# local-vars: script om lokale variabelen te demonstreren

#! / Bin / bash


# local-vars: script om lokale variabelen te demonstreren


foe=0

# globale variabele foo

foe=0


functie_1 () {

local foo # variabele foo local naar funct_1 foo=1

echo "funct_1: foo = $foo"

}


functie_2 () {

local foo # variabele foo local naar funct_2 foo=2

echo "funct_2: foo = $foo"

}


echo "algemeen: foo = $foo" funct_1

functie_1 () {

local foo # variabele foo local naar funct_1 foo=1

echo "funct_1: foo = $foo"

}


functie_2 () {

local foo # variabele foo local naar funct_2 foo=2

echo "funct_2: foo = $foo"

}


echo "algemeen: foo = $foo" funct_1

Lokale variabelen


echo "algemeen: foo = $foo" funct_2

echo "algemeen: foo = $foo"

echo "algemeen: foo = $foo" funct_2

echo "algemeen: foo = $foo"


Zoals we kunnen zien, worden lokale variabelen gedefinieerd door de naam van de variabele vooraf te laten gaan door het woord lokaal. Dit creëert een variabele die lokaal is voor de shell-functie waarin deze is gedefinieerd. Eenmaal buiten de shell-functie bestaat de variabele niet meer. Wanneer we dit script uitvoeren, zien we de resultaten:



[ik@linuxbox ~]$ lokale-vars

globaal: foo = 0 funct_1: foo = 1 globaal: foo = 0 funct_2: foo = 2 globaal: foo = 0

[ik@linuxbox ~]$ lokale-vars

globaal: foo = 0 funct_1: foo = 1 globaal: foo = 0 funct_2: foo = 2 globaal: foo = 0


We zien dat de toewijzing van waarden aan de lokale variabele foo binnen beide shell-functies heeft geen effect op de waarde van foo gedefinieerd buiten de functies.

Met deze functie kunnen shell-functies zo worden geschreven dat ze onafhankelijk blijven van elkaar en van het script waarin ze voorkomen. Dit is erg waardevol, omdat het helpt voorkomen dat een onderdeel van een programma een ander onderdeel verstoort. Het maakt het ook mogelijk om shell-functies te schrijven zodat ze draagbaar kunnen zijn. Dat wil zeggen, ze kunnen naar behoefte van script naar script worden geknipt en geplakt.


Top OS Cloud Computing bij OnWorks: