Sponsored Content
Top Forums Shell Programming and Scripting Dynamic Variable Based on Count Post 302280688 by earnstaf on Tuesday 27th of January 2009 11:45:03 AM
Old 01-27-2009
Dynamic Variable Based on Count

I'm trying to assign variables that include the current value of a count, but I can't seem to get it working... this script is incomplete, but some guidance on how to use a dynamic variable would be helpful:

Sample Input:
Code:
bash-2.03$ more sg2.txt
Results for group6
443
1394

Results for group7
15191-15199
15240
15130-15133
15257
15231
15147-15159

Results for group8
15255
15257

Results for group9
104-104 (udp)
104

Results for group10
2380-2381
2370-2371

Like I said, this is incomplete and there may be more efficient ways of doing this, but I need help with the denoted portion:
Code:
#!/bin/bash
COUNT=1
ENHANCE=0
while read line
do

case "$line" in

Results*) NAME=`echo "$line" | cut -d " " -f 3` ;;
[0-9]*udp*) PORTa=`echo "$line" | cut -d "-" -f 1`; PORTb=`echo "$line" | cut -d "-" -f 2 | cut -d " " -f 1`
            if [ $PORTa = $PORTb ]; then
            PORT$COUNT="service-object udp $PORTa"
            else
            PORT$COUNT="service-object udp range $PORTa $PORTb"
            fi
            COUNT=`expr $COUNT + 1`
            ENHANCE=1 ;;
ping) PORT$COUNT="echo "service-object icmp""
      COUNT=`expr $COUNT + 1`
      ENHANCE=1 ;;
[0-9]*) case "$line" in
         [0-9]*-[0-9]*) PORTa=`echo "$line" | cut -d "-" -f 1`; PORTb=`echo "$line" | cut -d "-" -f 2 | cut -d " " -f 1` ;
                       PORT$COUNT="service-object tcp range $PORTa $PORTb" ;
                       COUNT=`expr $COUNT + 1` ;;
         [0-9]*) "echo "service-object tcp $line""
                COUNT=`expr $COUNT + 1` ;;
        esac;;
*) if [ $ENHANCE -eq 0 ]; then
     echo "object-group service $NAME tcp"
     PORTCOUNT=1
     while [ $PORTCOUNT -lt $COUNT ]
     do
     echo "$(PORT$PORTCOUNT)"
     PORTCOUNT=`expr $PORTCOUNT + 1`
    done
        else
     PORTCOUNT=1
     while [ $PORTCOUNT -lt $COUNT ]; do
     echo "$PORT$PORTCOUNT"
     PORTCOUNT=`expr $PORTCOUNT + 1`
     done
   fi
esac
done < sg2.txt

 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Dynamic naming based on file content

I was just thinking if there is a way where i can dynamically rename files based on the actual file content. I have a load of pdf's which have been named wrongly. (We normally put date first, then brief description, then title) So can a script be written wherin, it pulls out the date and title... (2 Replies)
Discussion started by: deaddevil
2 Replies

2. Shell Programming and Scripting

Dynamic SQL query based on shell script parameters

Hi, I need a script that will run a dynamic Oracle SQL. Dynamic meaning the SQL statement depends on the parameter. For instance, something like this: #!/bin/ksh -x # Set environment . /home/mine/set_vars sqlplus $LOGINID <<! >> /home/mine/log.txt select count(1) from $1 where... (2 Replies)
Discussion started by: laiko
2 Replies

3. UNIX for Dummies Questions & Answers

How to set a variable with a count variable i.e. VARIABLE$COUNT

Hi All I've very nearly finished this script I'm working on but have hit another idiots problem, after googling I can't see a solution for this one. I have a while count loop that checks checks two consecutive values then increments the count by two. What the script has to do is then check... (5 Replies)
Discussion started by: Bashingaway
5 Replies

4. Shell Programming and Scripting

Help Dynamic looping based on files

Hi I have to run the script (a part of the code) in a loop for the no of times the files present in the directory, by taking one file and process and next another file. For example, if we do ls and the result have: $ls abc.dat def.dat ghi.dat The script code should loop for 3... (4 Replies)
Discussion started by: karumudi7
4 Replies

5. Red Hat

Dynamic case creation based on output list from a command

I am attempting to create a script that would allow me to list all the instances associated with a DB2 and then prompt the user to choose which one to issue the db2profile command against. I use the db2 command db2ilist to get a list of the instances for a particular server, but the number of... (1 Reply)
Discussion started by: slatoms
1 Replies

6. Shell Programming and Scripting

Dynamic case creation based on output list from a command

I am attempting to create a script that would allow me to list all the instances associated with a DB2 and then prompt the user to choose which one to issue the db2profile command against. I use the db2 command db2ilist to get a list of the instances for a particular server, but the number of... (7 Replies)
Discussion started by: slatoms
7 Replies

7. Shell Programming and Scripting

Passing dynamic variable within another variable.

I have a small program which needs to pass variable dynamically to form the name of a second variable whose value wil be passed on to a third variable. ***************** Program Start ****************** LOC1=/loc1 PAT1IN=/loc2 PAT2IN=/loc3 if ; then for fpattern in `cat... (5 Replies)
Discussion started by: Cyril Jos
5 Replies

8. UNIX for Dummies Questions & Answers

Count dynamic words in file

Hello, i want built a log analyzer for nginx. Okay and i use it as training for the shell tools. The most what i want i could relize. But i has trouble with dynamic things. I have the IP address extracted and has set the geo localtion for the ip. I would like to count the countries. With... (3 Replies)
Discussion started by: sisihagen
3 Replies
SG_SYNC(8)							     SG3_UTILS								SG_SYNC(8)

NAME
sg_sync - send SCSI SYNCHRONIZE CACHE command SYNOPSIS
sg_sync [--16] [--count=COUNT] [--group=GN] [--help] [--immed] [--lba=LBA] [--sync-nv] [--timeout=SECS] [--verbose] [--version] DEVICE DESCRIPTION
Send SYNCHRONIZE CACHE(10) or SYNCHRONIZE CACHE(16) command to DEVICE. These commands are defined for SCSI block devices (see SBC-3). If successful these commands make sure that any blocks whose latest versions are held in cache are written to (also termed as "synchronized with") the medium. If the LBA and COUNT arguments are both zero (their defaults) then all blocks in the cache are synchronized. If LBA is greater than zero while COUNT is zero then blocks in the cache whose addresses are from and including LBA to the highest lba on the device are synchronized. If both LBA and COUNT are non zero then blocks in the cache whose addresses lie in the range LBA to LBA+COUNT-1 inclusive are synchronized with the medium. OPTIONS
Arguments to long options are mandatory for short options as well. -S, --16 performs a SYNCHRONIZE CACHE(16) command. Default is to perform a SYNCHRONIZE CACHE(10) command. -c, --count=COUNT where COUNT is the number of blocks to synchronize from and including LBA. Default value is 0. When 0 then all blocks in the cache from and including LBA argument to the highest block address are synchronized. -g, --group=GN where GN is the group number which can be between 0 and 31 inclusive. The default value is 0 . Group numbers are used to segregate data collected within the device. This is a new feature in SBC-2 and can probably be ignored for the time being. -h, --help output the usage message then exit. -i, --immed sets the IMMED bit in the SYNCHRONIZE CACHE command. This instructs the device, if the format of the command is acceptable, to return a GOOD status immediately rather than wait for the blocks in the cache to be synchronized with (i.e. written to) the medium. -l, --lba=LBA where LBA is the lowest logical block address in the cache to synchronize to the medium. Default value is 0 . -s, --sync-nv synchronize the (volatile) cache with the non-volatile cache. Without this option (or if there is no non-volatile cache in the device) the synchronization is with the medium. The SYNC_NV bit was made obsolete in SBC-3 revision 35d. -t, --timeout=SECS where SECS is the number of seconds the OS allows the SYNCHRONIZE CACHE(16) to complete before it tries to cancel the command. Can- celling commands (typically with the task management function "abort task") is best avoided. Note this option is only active together with the --16 option. The default timeout is 60 seconds for both SYNCHRONIZE CACHE(10) and SYNCHRONIZE CACHE(16). Note that timeout issues can be avoided with the --immed option. -v, --verbose increase the level of verbosity, (i.e. debug output). -V, --version print the version string and then exit. NOTES
With the SYNCHRONIZE CACHE(16) command LBA can be up to 64 bits in size and COUNT up to 32 bits in size. With the SYNCHRONIZ CACHE(10) com- mand LBA can be up to 32 bits in size and COUNT up to 16 bits in size. Various numeric arguments (e.g. LBA) may include multiplicative suffixes or be given in hexadecimal. See the "NUMERIC ARGUMENTS" section in the sg3_utils(8) man page. EXIT STATUS
The exit status of sg_sync is 0 when it is successful. Otherwise see the sg3_utils(8) man page. AUTHORS
Written by Douglas Gilbert. REPORTING BUGS
Report bugs to <dgilbert at interlog dot com>. COPYRIGHT
Copyright (C) 2004-2013 Douglas Gilbert This software is distributed under a FreeBSD license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR- POSE. SEE ALSO
sg_start(sg3_utils) sg3_utils-1.37 July 2013 SG_SYNC(8)
All times are GMT -4. The time now is 08:09 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy