Variable variables


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Variable variables
# 1  
Old 04-05-2013
Variable variables

Hello,

Can you please help here?
Code:
DAY=$1

MONTH_MONDAY_YEAR = 1 2 3 4



	for i in ${MONTH_${DAY}_YEAR}
	do
		echo ${i}
	done


./test.sh MONDAY
./test.sh: line 3: MONTH_MONDAY_YEAR: command not found
./test.sh: line 10: ${MONTH_${DAY}_YEAR}: bad substitution
# 2  
Old 04-05-2013
Hi, there are some errors
1) assegments without spaces
Code:
MONTH_MONDAY_YEAR=1 2 3 4

2) this sintax is not possible
Code:
${MONTH_${DAY}_YEAR}

But the question is: what is the expected result?
# 3  
Old 04-05-2013
Like to know is there an alternative for
Code:
${MONTH_${DAY}_YEAR}

if it is not possible.

Ideally I like to use the value of MONTH_MONDAY_YEAR in the for loop

Code:
for i in ${MONTH_${DAY}_YEAR}

# 4  
Old 04-05-2013
Check this out

LINK
# 5  
Old 04-05-2013
Thanks to PikK45: then I suggest this code
Code:
DAY=$1
MONTH_MONDAY_YEAR="1 2 3 4"
eval echo \$MONTH_${DAY}_YEAR |tr -s ' ' '\n'| while read i
do
echo ${i}
done

# 6  
Old 04-05-2013
A modern shell will let you dereference a string with ${!...}

You must assign the string first, you can't embed the string inside the {}

Code:
STR="${MONTH}_${DAY}_${YEAR}"

echo "${!STR}"

This User Gave Thanks to Corona688 For This Post:
# 7  
Old 04-05-2013
@Corona688 it's fantastic:
Code:
DAY=$1
MONTH_MONDAY_YEAR="1 2 3 4"
STR="MONTH_${DAY}_YEAR"
for i in ${!STR}
do
echo ${i}
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Expand Variables and Wildcards into another variable.

Dear Forum members, I am having trouble getting the complete filename (and directory path) in a variable. Output directory mentioned in the code have three files: DISPLAY_CITY_DETAILS_15-05-2019-08-29-26_MIGRATE_london.out DISPLAY_CITY_DETAILS_15-05-2019-08-29-26_MIGRATE_paris.out... (4 Replies)
Discussion started by: chetanojha
4 Replies

2. Shell Programming and Scripting

Concatenate two variables and form the third variable

Hi Guys, I was scratching my head for this for half a day... finally not successful :confused: Following is the problem I have a variable $ var1=123 $ var2-234 $ var3=345 and another Variable $ i=1 Now i wanted to save these into a Variable as shown below for i in 1 2 3 do... (5 Replies)
Discussion started by: ramprabhum
5 Replies

3. Shell Programming and Scripting

Setting a variable using variables in a loop

Hi, I am having a bit of trouble with the below code: file=/path/to/file for i in 03 06 07 21; do if ; then eval count$i=`grep -c word $file-$i` fi done Totalcount=0 for i in 03 06 07 21; do if ; then echo $count$i variable not exist; else Tcount=`expr $Tcount + $count$i`; fi... (3 Replies)
Discussion started by: brunlea
3 Replies

4. Shell Programming and Scripting

How to set a variable name from another variables value?

Experts, I want to set value of variables like this in bash shell: i=5 ; L=100 I want variable d5 (that is d(i) ) to be assign the value of $L , d$i=$L ; echo $d5 Not working Thanks., (3 Replies)
Discussion started by: rveri
3 Replies

5. Shell Programming and Scripting

Refering to compound variables with a variable name

Hello, Here is my problem using KSH I have a set of compound variables, let say cmp_var1 cmp_var2 The names of these variables are stored in an indexed array. How can I access the subfields of these compound variables ? I tried: set -A cmp_varnames=(cmp_var1 cmp_var2) for cmp in... (4 Replies)
Discussion started by: luky55
4 Replies

6. Shell Programming and Scripting

Combining multiple variables into new variable

Hello, I am a new joiner to the forum, and have what i hope is a simple question, however I can't seem to find the answer so maybe it is not available within bash scripting. I intend to use the below script to archive files from multiple directories at once by using a loop, and a variable (n)... (10 Replies)
Discussion started by: dring
10 Replies

7. Shell Programming and Scripting

Bash:How to split one string variable in two variables?

Hello, I have a paramter $param consisting just of two literals and want to split it into two parameters, so I can combine it to a new parameter <char1><string><char2>, but the following code didn't work: tmp_PARAM_1=cut -c1 $PARAM tmp_PARAM_2=cut -c2 $PARAM... (2 Replies)
Discussion started by: ABE2202
2 Replies

8. Shell Programming and Scripting

moving variables to another variable as a new avriable

Somehow I can't get it for this basic bash problem. maybe someone can help. What I try to do is: a="world" b="hello" how can I move this into $c so that I can replace "helloworld" with "world hello" in sed like: sed "s/\helloworld/ ${c}... I tried several combinations but all with... (4 Replies)
Discussion started by: lowmaster
4 Replies

9. Shell Programming and Scripting

how to seperate a variable in 2 variables

Dear all, i dont know how to split one variable value in 2 variable. please send me any example. variable1= "abcde developer" now i want to seperate the values and seperator is space. (6 Replies)
Discussion started by: intikhabalam
6 Replies

10. UNIX for Dummies Questions & Answers

extract from string variable into new variables

I have a variable which consists of a string like this: 001 aaabc 44 a bbb12 How do I extract each substring, delimited by the spaces, into new variables - one for each substring? eg var1 will be 001, var2 will be aaabc, var3 will be 44, var4 will be a, etc? I've come up with this:... (2 Replies)
Discussion started by: Sniper Pixie
2 Replies
Login or Register to Ask a Question