Solved

shell script

Posted on 2011-09-29
14
282 Views
Last Modified: 2012-05-12
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"
0
Comment
Question by:damodar4u
  • 6
  • 5
  • 2
  • +1
14 Comments
 
LVL 31

Accepted Solution

by:
farzanj earned 200 total points
ID: 36823801
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
 
LVL 31

Expert Comment

by:farzanj
ID: 36825768
Sorry, you said temp then

for temp in $str
do
    echo $temp
done
0
 

Author Comment

by:damodar4u
ID: 36833731
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
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:damodar4u
ID: 36834515
i need the temp size value to be 40
0
 
LVL 31

Expert Comment

by:farzanj
ID: 36839208
Try this:

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

Sorry don't have shell at this time to test.
0
 

Author Comment

by:damodar4u
ID: 36843096
getting same value ...
0
 

Author Comment

by:damodar4u
ID: 36843237
taht did not fix the issue
0
 
LVL 31

Assisted Solution

by:farzanj
farzanj earned 200 total points
ID: 36843935
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
 

Author Comment

by:damodar4u
ID: 36844570
i cannot use _ as i'm geeting the value from some file ..
0
 
LVL 31

Expert Comment

by:farzanj
ID: 36846495
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
 

Author Comment

by:damodar4u
ID: 36857248
can you pls show me the possible solutions for the above example

 substitute or get rid of dash
0
 
LVL 19

Assisted Solution

by:simon3270
simon3270 earned 100 total points
ID: 36890997
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
 
LVL 84

Assisted Solution

by:ozo
ozo earned 200 total points
ID: 36891180
how are you getting the value from some file, and how are you turning the value into a variable name?
0
 
LVL 84

Assisted Solution

by:ozo
ozo earned 200 total points
ID: 36891195
in perl, ${"hum-tum"} would work, but what purpose would it serve to do that?
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
bash while loop reading input from data section in script 7 71
Two RegEx conditions in one 3 47
AWK: Pytthagoras bp script Part REVISITED 3 28
Regular Expression needed 4 15
by Batuhan Cetin Regular expression is a language that we use to edit a string or retrieve sub-strings that meets specific rules from a text. A regular expression can be applied to a set of string variables. There are many RegEx engines for u…
Email validation in proper way is  very important validation required in any web pages. This code is self explainable except that Regular Expression which I used for pattern matching. I originally published as a thread on my website : http://www…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question