URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95498
[ Назад ]

Исходное сообщение
"Bash: получить список объявленных переменных"

Отправлено stakado , 18-Мрт-14 09:54 
Здравствуйте!
Есть тестовый скрипт:
#!/bin/bash

var1=111
var2=222
var3=333

Необходимо получить массив переменных заданных (или объявленных, как правильно?) в скрипте. Т.е. получить следующий массив:
manualvar[0]=var1
manualvar[1]=var2
manualvar[2]=var3

При использовании declare выводятся не только переменные, заданные пользователем, но и системные переменные окружения.
Попробовал в начале скрипта получить список переменных окружения и уничтожить их с помощью unset, но некоторые переменные не уничтожаются, т.к. являются read-only.

Каким образом можно получить список переменных, заданных в скрипте, исключая системные переменные?


Содержание

Сообщения в этом обсуждении
"Bash: получить список объявленных переменных"
Отправлено Andrey Mitrofanov , 18-Мрт-14 10:24 
> Каким образом можно получить список переменных, заданных в скрипте,

http://stackoverflow.com/questions/1305237/how-to-list-varia...

> исключая системные переменные?

Вот взят и всё испортил.


"Bash: получить список объявленных переменных"
Отправлено stakado , 18-Мрт-14 11:30 
> http://stackoverflow.com/questions/1305237/how-to-list-varia...

Спасибо большое - ссылка дельная, нашёл в ней решение своего вопроса.

>> исключая системные переменные?
> Вот взят и всё испортил.

Вы, наверное, хотели увидеть тут словосочетание "переменные окружения"?


"Bash: получить список объявленных переменных"
Отправлено Andrey Mitrofanov , 18-Мрт-14 11:50 
>>> исключая системные переменные?
>> Вот взят и всё испортил.
> Вы, наверное, хотели увидеть тут словосочетание "переменные окружения"?

Нет, я нашёл "полное" решение, но потом увидел условие про внутренние переменные bash и решил, что это усложняет дело.


"Bash: получить список объявленных переменных"
Отправлено pavlinux , 04-Апр-14 03:10 
>>>> исключая системные переменные?
>>> Вот взят и всё испортил.
>> Вы, наверное, хотели увидеть тут словосочетание "переменные окружения"?
> Нет, я нашёл "полное" решение, но потом увидел условие про внутренние переменные
> bash и решил, что это усложняет дело.

А где manualvar[3]=manualvar ? :)
массив тоже переменная.