BASH: имя переменной из значения другой переменной (Проблема подстановки (ИМХО))

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Аватара пользователя
VAVka
Сообщения: 96

BASH: имя переменной из значения другой переменной

Сообщение VAVka »

Здрасьте!

Есть некий скрипт:

Код: Выделить всё

#! /bin/bash

PARAMS="P1 P2 P3"

for i in $PARAMS;
do
echo Введите $i:
read $i # чтение происходит как ожидаешь, т.е. значения получают все P1...Pn
done


Как сделать так, чтоб вывести значение Pn без непосредственного указания имени переменной, а взяв его из i, т.е. что-то типа: echo ${$i}?
Тут где-то была тема при подстановку имени функции. Решилось путем использования FUNCTION(@), которая содержит стек вызовов. Здесь иначе, т.к. переменные пользовательские и никакой сис. переменной, содержащей их, нет (или, все-таки, есть?).

Братцы, как мне организовать подстановку (или что там еще?) чтобы решить обозначенный сабж?
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга
Контактная информация:

Re: BASH: имя переменной из значения другой переменной

Сообщение madskull »

eval echo \$$i
ArchLinux / IceWM
Спасибо сказали:
Ananas
Сообщения: 64

Re: BASH: имя переменной из значения другой переменной

Сообщение Ananas »

Код: Выделить всё

(victor@pts/5)~ $> t1=1                                                    [sh]
(victor@pts/5)~ $> t2=t1                                                   [sh]
(victor@pts/5)~ $> t3=$(eval echo \$$t2)                                   [sh]
(victor@pts/5)~ $> echo $t3                                                [sh]
1
(victor@pts/5)~ $>                                                         [sh]
Спасибо сказали:
Аватара пользователя
VAVka
Сообщения: 96

Re: BASH: имя переменной из значения другой переменной

Сообщение VAVka »

Спасибо большое, madskull и Ananas, красивые решения.
Кстати, вот ссылочка с интересным материалом: http://gazette.linux.ru.net/.../abs-guide
по подобной тематике.
С уважением, VAVka (VAVka pagе)

NimbleX 200 Mb USB Edition (krnl 2.6.24/2.4.22)
{XOrg 1.4.0/IceWM 1.2.35}
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга
Контактная информация:

Re: BASH: имя переменной из значения другой переменной

Сообщение madskull »

(VAVka @ Пятница, 20 Мая 2005, 1:50) писал(а):Спасибо большое, madskull и Ananas, красивые решения.
Кстати, вот ссылочка с интересным материалом: http://gazette.linux.ru.net/.../abs-guide
по подобной тематике.

Все правильно, с этого гайда и надо начинать.
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга
Контактная информация:

Re: BASH: имя переменной из значения другой переменной

Сообщение madskull »

Код: Выделить всё

[tower ~]$ t1=1
[tower ~]$ t2=t1
[tower ~]$ echo ${!t2}
1
ArchLinux / IceWM
Спасибо сказали:
Ответить