shell script

i have two varaibales in a string, the variables are seperated by space as below .. i need a for loop to extract each string into a variable called temp and print temp each time
str = "hum-tum bay"
damodar4uAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
farzanjConnect With a Mentor Commented:
First: NO SPACES IN ASSIGNMENT
SO
str = "hum-tum bay"

Should be
str="hum-tum bay"


Second: You need a for loop

for var in $str
do
    echo $var
done
0
 
farzanjCommented:
Sorry, you said temp then

for temp in $str
do
    echo $temp
done
0
 
damodar4uAuthor Commented:
hum-tum_tit_for_tat_SIZE = 40


INST = hum-tum

 eval TEMP_SIZE="$"${INST}_tit_for_tat_SIZE

it is not evaluating to 40 rather it is evaluating to -tum_tit_for_tat_SIZE
can you pls fix it



0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
damodar4uAuthor Commented:
i need the temp size value to be 40
0
 
farzanjCommented:
Try this:

TEMP_SIZE=$(eval echo \$${INST}_tit_for_tat_SIZE)

Sorry don't have shell at this time to test.
0
 
damodar4uAuthor Commented:
getting same value ...
0
 
damodar4uAuthor Commented:
taht did not fix the issue
0
 
farzanjConnect With a Mentor Commented:
That is because the variable name is faulty.  It cannot be hum-tum.  It will be interpreted as the math operator minus.  Could you please use underscore and test.
0
 
damodar4uAuthor Commented:
i cannot use _ as i'm geeting the value from some file ..
0
 
farzanjCommented:
Well, you would need to either substitute using either sed or something.

Try doing

hum\-tum=10

echo ${hum\-tum}

Probably would not work.  Then the only solution would be to substitute or get rid of dash
0
 
damodar4uAuthor Commented:
can you pls show me the possible solutions for the above example

 substitute or get rid of dash
0
 
simon3270Connect With a Mentor Commented:
Why are you generating the variable name from the contents of a data file?  There are many data formats which would not be valid variable names (mostly punctuation as you have seen, but also any string starting with a digit).
0
 
ozoConnect With a Mentor Commented:
how are you getting the value from some file, and how are you turning the value into a variable name?
0
 
ozoConnect With a Mentor Commented:
in perl, ${"hum-tum"} would work, but what purpose would it serve to do that?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.