Массив на языке bash - хранится ли локально на стеке?

Массив на языке bash - хранится ли локально на стеке?

22.09.2016 10:20:04 Просмотров 28 Источник

Здравствуйте. Вопрос следующий. Допустим я в рекурсивной функции rec, пишу следующее определение массива: local dep = ('cat $1') (backticks естественно) таким образом все содержание файла переданным параметром я размешаю в массив. Далее снова вызываю rec, восстановится ли после возвращения исходное значение массива, точно также как в Си и Си++, ведь отличия только в синтаксисе заполнения массива, в обоих случаях, с использованием local переменная или массив в данном случае сохраняются на стеке, верно ли данное предположение ?

Благодарю за ответ.

У вопроса есть решение - Посмотреть?

https://ru.stackoverflow.com/questions/569320/%d0%9c%d0%b0%d1%81%d1%81%d0%b8%d0%b2-%d0%bd%d0%b0-%d1%8f%d0%b7%d1%8b%d0%ba%d0%b5-bash-%d1%85%d1%80%d0%b0%d0%bd%d0%b8%d1%82%d1%81%d1%8f-%d0%bb%d0%b8-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d0%be-%d0%bd%d0%b0-%d1%81%d1%82%d0%b5%d0%ba%d0%b5#comment746463_569320
а самому проверить сложно?
https://ru.stackoverflow.com/questions/569320/%d0%9c%d0%b0%d1%81%d1%81%d0%b8%d0%b2-%d0%bd%d0%b0-%d1%8f%d0%b7%d1%8b%d0%ba%d0%b5-bash-%d1%85%d1%80%d0%b0%d0%bd%d0%b8%d1%82%d1%81%d1%8f-%d0%bb%d0%b8-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d0%be-%d0%bd%d0%b0-%d1%81%d1%82%d0%b5%d0%ba%d0%b5#comment746465_569320
на данный момент затрудняюсь по техническим причинам, думал кто-то подскажет.

Ответы - Массив на языке bash - хранится ли локально на стеке? / Массив на языке bash - хранится ли локально на стеке?

Является ответом!
sercxjo

22.09.2016 10:42:03

Вот пример с массивом из двух элементов

#!/bin/bash
f(){
local x
x=($x $1 $2)
echo ${x[*]}
[ $1 -lt 4 ] && f $(($1+1)) $2
echo ${x[*]}
}
f 1 2

Судя по выводу

1 2
2 2
3 2
4 2
4 2
3 2
2 2
1 2

массивы сохраняются в каждом вызове свои.

Если local убрать массив общий изменяется

1 2
1 2 2
1 3 2
1 4 2
1 4 2
1 4 2
1 4 2
1 4 2
https://ru.stackoverflow.com/questions/569320/%d0%9c%d0%b0%d1%81%d1%81%d0%b8%d0%b2-%d0%bd%d0%b0-%d1%8f%d0%b7%d1%8b%d0%ba%d0%b5-bash-%d1%85%d1%80%d0%b0%d0%bd%d0%b8%d1%82%d1%81%d1%8f-%d0%bb%d0%b8-%d0%bb%d0%be%d0%ba%d0%b0%d0%bb%d1%8c%d0%bd%d0%be-%d0%bd%d0%b0-%d1%81%d1%82%d0%b5%d0%ba%d0%b5/569323#comment746467_569323
Отлично, благодарю.
Закрыть X