added topic about local variables

This commit is contained in:
cheatsnake 2022-09-05 20:29:55 +03:00
parent 9b5d586db6
commit dc9a0e860c

View File

@ -632,4 +632,42 @@ calc 42 17
$ bash script.sh hello
hello
42 + 17 = 59
```
## Локальные переменные
Если мы объявим какую-либо переменную, а затем объявим ещё одну с таким же именем, но уже внутри функции, то у нас произойдет перезапись:
```sh
VALUE="hello"
test() {
VALUE="linux"
}
test
echo $VALUE
```
```
$ bash script.sh
linux
```
Чтобы предотвратить такое поведение используются ключевое слово `local` перед именем переменной, которая объявляется внутри функции:
```sh
VALUE="hello"
test() {
local VALUE="linux"
echo "Переменная внутри функции: $VALUE"
}
test
echo "Глобальная переменная: $VALUE"
```
```
$ bash script.sh
Переменная внутри функции: linux
Глобальная переменная: hello
```