help with assigning multiple values to a variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting help with assigning multiple values to a variable
# 1  
Old 04-16-2012
help with assigning multiple values to a variable

I have a situation where my variable needs to pick up any of the 4 values from the environment it is in

for e.g i am on server named a

server=a (script running on this server)
ftp servers= b c d e ----- the parameter passed should be any of these values in these 4 values, if not throw an error

i will pass the ftp server as a parameter. so the idea is it should not allow anyother value apart from the ftp servers allowed if i am running from SERVER A

can I acheive this with a case statment and how do i assign the variable values?
# 2  
Old 04-16-2012
What shell are you using?
# 3  
Old 04-16-2012
If your using bash, set extglob option:

Code:
#!/bin/bash
ftp_servers="b|c|d|e"
 
shopt -s extglob
case $1 in
    @($ftp_servers)) echo "server OK" ;;
    *) echo "Invalid server: $1" ;;
esac
shopt -u extglob

With ksh93 just put var straight in the case:

Code:
#!/bin/ksh93
ftp_servers="b|c|d|e"
 
case $1 in
    $ftp_servers) echo "server OK" ;;
    *) echo "Invalid server: $1" ;;
esac

otherwise, you can eval it, but it's pretty messy especially if you have any sort of complex code within the case,
I'd tend to call functions rather that putting too much code in there:

Code:
ftp_servers="b|c|d|e"
 
eval "case \$1 in
    $ftp_servers) echo \"server OK\" ;;
    *) echo \"Invalid server: \$1\" ;;
esac"

# 4  
Old 04-16-2012
i am using ksh
# 5  
Old 04-16-2012
Think you're stuck with the 3rd version then (ie using eval on your whole case statement).
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Variable with multiple values

Hello I need to alter a script to check for a flag file but there are now more than one type of flag file in my directory. Basically if any of these flg files exist then the MASK value should be set? Flag files to be included in assignment to variable e2e_scheduled*.flg COLL_STOP*.flg... (1 Reply)
Discussion started by: andymay
1 Replies

2. Shell Programming and Scripting

Removing multiple values from a variable

Hi I have a requirement like # e=`ls | grep -e"test" | awk -F " " '{print $1}'` (0) root @ ptxfv3: / # echo $e test test.xml From this i need to grep the word "test" alone i.e., it is occuring twice I need only one among them Please help (6 Replies)
Discussion started by: Priya Amaresh
6 Replies

3. Shell Programming and Scripting

Assigning numeric values to variable

I have a code like this v_num=9 comp_num=39 if then echo "pass" fi echo "end" I am getting an error ksh: v_num=99 comp_num=39 if then echo "pass" fi echo "end" (3 Replies)
Discussion started by: swayam123
3 Replies

4. Shell Programming and Scripting

[Solved] Assigning a value to a variable name then running a loop on these values

Hi, I was wondering if anyone could assist me for (what is probably) a very straightforward answer. I have input files containing something like File 1 Apples Apples Apples Apples File 2 Bananas Bananas Bananas Bananas (4 Replies)
Discussion started by: hubleo
4 Replies

5. Shell Programming and Scripting

Assigning a set of values to a variable

I wnat to assign a set of values to a variable and use it in if condition. for example: i=$1 d=1 2 3 4 5 6 if then echo "Fine" else echo "Check" fi i will either of the value in d, i.e. i can be 1 or 2 or any value in d, How this can be done? Thanks in advance (2 Replies)
Discussion started by: sol_nov
2 Replies

6. Shell Programming and Scripting

ksh help assigning specific values to variable in script

Hi - Help needed. I have an input file that looks something like this, but with a lot more entries: A Customer1 B 4500 C 8000 A Customer2 B 6422 C 8922 I need to be able to print details for each customer on one line per customer. ie. if I could print these to a file and then cat... (3 Replies)
Discussion started by: frustrated1
3 Replies

7. Shell Programming and Scripting

Assigning multiple values to a variable

Hi Guru`s, I have to write a prog. which will traverse through diff. directories and then extract some data from files. I have written it and its working fine. But I have tested it in 1 folder. There are many folders and I need to loop through each of them. I am not sure abt the... (4 Replies)
Discussion started by: unx100
4 Replies

8. UNIX for Dummies Questions & Answers

Storing Multiple Values in a Variable

Hi, My code is as below: integer i=7 while ((i <= 5 )); do # test_out is a variable which contains data separated by "^". a= `echo $test_out | cut -d"^" -f$i` echo "$a" (( i = i + 1)); done From the above code, i kept $i after f so that i can capture all the data which is... (1 Reply)
Discussion started by: sandeep_1105
1 Replies

9. Shell Programming and Scripting

problem assigning values to variable

Date of Request: 20080514 10:37 Submitted By: JPCHIANG i want to get the value "JPCHIANG" only in read a file, however, when i do this: name=`"$line"|cut -d " " -f8` it display all the line and append 'not found' at the end of the statement the $line is actually a variable in a... (2 Replies)
Discussion started by: finalight
2 Replies

10. UNIX for Dummies Questions & Answers

assigning values to a variable

i try to get the year and month values using the below shell script when i enter the script like this #!/usr/bin/ksh dd=`DATE +%Y%M` echo $dd it is showing the error as shown below abc.ksh: DATE: not found any suggestions please (3 Replies)
Discussion started by: trichyselva
3 Replies
Login or Register to Ask a Question