Sponsored Content
Top Forums Shell Programming and Scripting Using variables created sequentially in a loop while still inside of the loop [bash] Post 302327901 by DeCoTwc on Monday 22nd of June 2009 11:54:58 PM
Old 06-23-2009
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 variable $tab)
Code:
    (23:32:12\[deco@S.Man)
    [~/bin]$ listQpsk 40|grep -w [1-4]
    40 SMANHUBAQPSK1          1    1344      1195        88
    40 SMANHUBAQPSK1          2    1668      1470        88
    40 SMANHUBAQPSK1          3    1881      1539        81
    40 SMANHUBAQPSK1          4    1686      1409        83


    (23:18:42\[deco@S.Man)
    [~/bin]$ cat question
    #!/usr/bin/bash
    tab=`listQpsk 40|grep -w [1-4]`
    seq=1
    num=4
    until [[ $seq -gt $num ]];do
    eval count$seq=`echo "$tab"|grep -w $seq|awk '{print $5}'`
    seq=$(($seq+1))
    done
    echo $count1
    echo $count2
    echo $count3
    echo $count4

When I run this I get
Code:
    (23:32:23\[deco@S.Man)
    [~/bin]$ ./question 
    1195
    1471
    1538
    1409

Which is exactly what I would expect, but is there a way to move the echo commands inside of the until loop so that part of the loop is echoing the value of the variable that was just created. Something like:

Code:
    until [[ $seq -gt $num ]];do
    eval count$seq=`echo "$tab"|grep -w $seq|awk '{print $5}'`
    seq=$(($seq+1))
    echo "$count$seq"
    done

 

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

BASH loop inside a loop question

Hi all Sorry for the basic question, but i am writing a shell script to get around a slightly flaky binary that ships with one of our servers. This particular utility randomly generates the correct information and could work first time or may work on the 12th or 100th attempt etc !.... (4 Replies)
Discussion started by: rethink
4 Replies

3. Shell Programming and Scripting

Need help in assigning output of n commands to n variables automatically inside a for loop

Please help me to automatically assign the output of awk command to the variables cs3, cs4, cs5 and cs6 using a for loop. The below code is not working. for i in 3 4 5 6 do cs$i=`awk -F"|" 'BEGIN{sum=0}{sum=sum+$'$i'}END{printf("%d\n", sum)}' css` done echo $cs3 $cs4 $cs5 $cs6 (9 Replies)
Discussion started by: thulasidharan2k
9 Replies

4. Shell Programming and Scripting

For Loop inside For loop

I am new to unix and trying to make a script for writing all my command into another file and use that file to run all commands I am trying to use for loop with echo command to generate a command based script for writing the file with all the command sequentially w.r.t for loop. I want... (6 Replies)
Discussion started by: nnani
6 Replies

5. Shell Programming and Scripting

Bash for loop with two variables

Hi, I have the following folder structure: TST500-1000 TST500-2000 TST500-3000 TST700-1000 TST700-2000 TST700-3000 TST900-1000 TST900-2000 TST900-3000 I would like to store the numbers in the first column (considering "-" as column separator) into a variable then the numbers in... (3 Replies)
Discussion started by: alex2005
3 Replies

6. Shell Programming and Scripting

Bash for loop with awk and variables

I'm relatively new to bash scripting and am trying to use awk inside a bash for loop but am having a problem with the variables. for i in $(seq 30 5 60) do # Define variables up and down in AWK eval $(awk 'BEGIN{ print "up=$((i+1))"}' < /dev/null) eval $(awk 'BEGIN{ print... (2 Replies)
Discussion started by: lily-anne
2 Replies

7. UNIX for Dummies Questions & Answers

Write a while loop inside for loop?

I'm taking a unix class and need to countdown to 0 from whatever number the user inputs. I know how to do this with a while or until loop but using the for loop is throwing me off.... I know I can use an if-then statement in my for loop but can I include a while loop in my for loop? (3 Replies)
Discussion started by: xxhieixx
3 Replies

8. Shell Programming and Scripting

Bash - How to do a "read -p" inside a while loop?

Hi there guys! I was trying to do: while read line; do if ; then read -p "Press Enter to continue..." cont=0 fi echo $line let cont++ done < file.txt However, I have read that the read -p would not work in a while loop... I was wondering if there is any other way to... (2 Replies)
Discussion started by: rplae
2 Replies

9. Shell Programming and Scripting

awk to create variables to pass into a bash loop to create a download link

I have created one file that contains all the necessary info in it to create a download link. In each of the lines /results/analysis/output/Home/Auto_user_S5-00580-6-Medexome_67_032/plugin_out/FileExporter_out.67... (8 Replies)
Discussion started by: cmccabe
8 Replies

10. UNIX for Beginners Questions & Answers

Bash array variables are changed in loop runtime

I am trying to check whether particular host and port are responding or not. I am using below script to check. but node_port array that i am using in loop is getting replaced with previous iteration value. Script and output is given. Please help me to understanding why node_port values are... (5 Replies)
Discussion started by: tmalik79
5 Replies
SEQ(1)							    BSD General Commands Manual 						    SEQ(1)

NAME
seq -- print sequences of numbers SYNOPSIS
seq [-w] [-f format] [-s string] [-t string] [first [incr]] last DESCRIPTION
The seq utility prints a sequence of numbers, one per line (default), from first (default 1), to near last as possible, in increments of incr (default 1). When first is larger than last the default incr is -1. All numbers are interpreted as floating point. Normally integer values are printed as decimal integers. The seq utility accepts the following options: -f format Use a printf(3) style format to print each number. Only the E, e, f, G, g, and % conversion characters are valid, along with any optional flags and an optional numeric minimum field width or precision. The format can contain character escape sequences in backslash notation as defined in ANSI X3.159-1989 (``ANSI C89''). The default is %g. -s string Use string to separate numbers. The string can contain character escape sequences in backslash notation as defined in ANSI X3.159-1989 (``ANSI C89''). The default is . -t string Use string to terminate sequence of numbers. The string can contain character escape sequences in backslash notation as defined in ANSI X3.159-1989 (``ANSI C89''). This option is useful when the default separator does not contain a . -w Equalize the widths of all numbers by padding with zeros as necessary. This option has no effect with the -f option. If any sequence numbers will be printed in exponential notation, the default conversion is changed to %e. The seq utility exits 0 on success and non-zero if an error occurs. EXAMPLES
# seq 1 3 1 2 3 # seq 3 1 3 2 1 # seq -w 0 .05 .1 0.00 0.05 0.10 SEE ALSO
jot(1), printf(1), printf(3) HISTORY
The seq command first appeared in Plan 9 from Bell Labs. A seq command appeared in NetBSD 3.0, and ported to FreeBSD 9.0. This command was based on the command of the same name in Plan 9 from Bell Labs and the GNU core utilities. The GNU seq command first appeared in the 1.13 shell utilities release. BUGS
The -w option does not handle the transition from pure floating point to exponent representation very well. The seq command is not bug for bug compatible with the Plan 9 from Bell Labs or GNU versions of seq. BSD
February 19, 2010 BSD
All times are GMT -4. The time now is 08:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy