Sponsored Content
Full Discussion: Help with variables in loop
Top Forums Shell Programming and Scripting Help with variables in loop Post 302952656 by MadeInGermany on Thursday 20th of August 2015 04:13:16 PM
Old 08-20-2015
This can be achieved in standard shell (and all its derivates) with
Code:
users="test1 test2"
keytest1="abcd"
keytest2="dbcd"

for i in $users
do
 eval echo "\${key${i}}"
done

BTW eval - if a part of its arguments is imported - bares a security risk.
If you have bash, you can do
Code:
users="test1 test2"
keytest1="abcd"
keytest2="dbcd"

for i in $users
do
 key=key${i}
 echo "${!key}"
done

Or use arrays
Code:
users=(test1 test2)
key=(abcd dbcd)

index=0
for i in ${users[@]}
do
 echo "${key[$index]}"
 index=$((index+1))
done

Often you can organize your data in pairs,
and the shell can elegantly process them
Code:
user_keys="\
test1 abcd
test2 dbcd"

while read i key
do
 echo "${key}"
done <<< "$user_keys"

And a standard shell can run this as
Code:
user_keys="\
test1 abcd
test2 dbcd"

echo "$user_keys" |
while read i key
do
 echo "${key}"
done

This User Gave Thanks to MadeInGermany For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

using variables outside a while loop

Hi Guys, I have a scripts that uses a while loop to read a file and set 2 variables. How can I do this so the variables can be used outside the while loop ? Below is an example....# ./junk2 -m -e user EXE=user master=TRUE DB_TAG=PRODUCT In loop MST=MST=testsvr1:3110 In loop ARGS=... (2 Replies)
Discussion started by: Tornado
2 Replies

2. Shell Programming and Scripting

Is there a better way I could have run this loop. (For loop with two variables)

Sorry for such a dreadful title, but I'm not sure how to be more descriptive. I'm hoping some of the more gurutastic out there can take a look at a solution I came up with to a problem, and advice if there are better ways to have gone about it. To make a long story short around 20K pieces of... (2 Replies)
Discussion started by: DeCoTwc
2 Replies

3. Shell Programming and Scripting

Using variables created sequentially in a loop while still inside of the loop [bash]

I'm trying to understand if it's possible to create a set of variables that are numbered based on another variable (using eval) in a loop, and then call on it before the loop ends. As an example I've written a script called question (The fist command is to show what is the contents of the... (2 Replies)
Discussion started by: DeCoTwc
2 Replies

4. Shell Programming and Scripting

SH: two variables in for loop

Hi, say I have a simple sh script like this: for i in a b c d do for j in 1 2 3 4 do echo "$i $j" done done and the output is a 1 a 2 a 3 a 4 b 1 (20 Replies)
Discussion started by: marcpascual
20 Replies

5. Shell Programming and Scripting

Two variables in a for loop

Can we assign two variables in a for loop? I have an input file: 000301|20100502 835101|20100502 I want to read this file in a for loop and assign values to two different variables. I did this now but did not work for STORE,RUNDATE in `awk -F\| '{print $1,$2}' inputfile ... (4 Replies)
Discussion started by: gpaulose
4 Replies

6. Shell Programming and Scripting

Need help in for loop with 2 variables

Hi, I need help on for loop need to add domain and IP In domain list 1.com 2.com 3.com In Ip list 1.1.0.1 1.2.0.1 1.3.0.1 1.com 1.1.0.1 2.com 1.2.0.1 3.com 1.3.0.1 I need to excute this command (4 Replies)
Discussion started by: ranjancom2000
4 Replies

7. Shell Programming and Scripting

Help with a For loop and variables

Greetings. I'm completely new to shell scripting and quickly trying to catch on. Here's my scenario: I have a text file, named ip.txt, containing IP addresses. I want to automatically perform a whois query on each address in the file, search the output for the country, and then put both the IP... (4 Replies)
Discussion started by: molnir
4 Replies

8. Shell Programming and Scripting

for loop with 2 variables

i am having a file contants as below my requirement is for file in `awk -F "," '{print $8,$9}'` <temp.txt echo "$file" echo "$file">test.txt a=`awk -F "," '{print $1}' `<test.txt b=`awk -F "," '{print $2}' `<test.txt but script reads , i want both the vales for further... (5 Replies)
Discussion started by: sagar_1986
5 Replies

9. Shell Programming and Scripting

Need to loop three variables

Hi, I have a out from a command i need to grep a report. For that i need loop 3 variable for that. How i can loop need help. Symmetrix ID : 123456 Masking View Name : Host16 Last updated at : 04:13:06 PM on Thu Mar 17,2011 Initiator Group Name : Host16 Host... (3 Replies)
Discussion started by: ranjancom2000
3 Replies

10. Shell Programming and Scripting

Loop through variables

I am pretty new to Unix. Trying to pick up some slack while a coworker is out on vacation. Basically the script is working fine however when I go through the testing phase and have to make mods it is a pita. Here is an example of what I have #!/bin/ksh if then echo... (8 Replies)
Discussion started by: biobill
8 Replies
CGEXEC(1)							 libcgroup Manual							 CGEXEC(1)

NAME
cgexec - run the task in given control groups SYNOPSIS
cgexec [-h] [-g <controllers>:<path>] [--sticky] command [arguments] DESCRIPTION
The cgexec program executes the task command with arguments arguments in the given control groups. -g <controllers>:<path> defines the control groups in which the task will be run. controllers is a list of controllers and path is the relative path to control groups in the given controllers list. This flag can be used multiple times to define multiple pairs of lists of controllers and relative paths. Instead of the list of all mounted controllers, the wildcard b"*b" can be used. If this option is not used, cgexec will automatically place the task in the right cgroup based on /etc/cgrules.conf. -h, --help Display this help and exit. --sticky If running the task command with this option, the daemon of service cgred (cgrulesengd process) does not change both the task of the command and the child tasks. Without this option, the daemon does not change the task of the command but it changes the child tasks to the right cgroup based on /etc/cgrules.conf automatically. EXAMPLES
cgexec -g *:test1 ls runs command ls in control group test1 in all mounted controllers. cgexec -g cpu,memory:test1 ls -l runs command ls -l in control group test1 in controllers cpu and memory. cgexec -g cpu,memory:test1 -g swap:test2 ls -l runs command ls -l in control group test1 in controllers cpu and memory and control group test2 in controller swap. FILES
/etc/cgrules.conf default libcgroup configuration file SEE ALSO
cgrules.conf (5) Linux 2009-03-15 CGEXEC(1)
All times are GMT -4. The time now is 08:06 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy