Sponsored Content
Top Forums Shell Programming and Scripting how to get the variable in while loop outside of it? Post 302571225 by munish259272 on Sunday 6th of November 2011 11:07:04 PM
Old 11-07-2011
how to get the variable in while loop outside of it?

bash-3.00$ cat compare.sh
#NOTE : 1.Filename must not have space for the script to work.
# 2.Script wont work if symlinks are there instead of proper filenames.

Code:
#!/bin/bash
#set -x

#############################VERIFYING THE EXISTENCE OF DUPLICATE FILENAMES IN THE SUPPLIED FILENAMES ###############

if [[ $# -lt 1 ]];then
echo "Usage : `basename $0` filename" 1>&2
exit 2
fi
awk '{f=$9;
        for(i=10;i<=NF;i++)
           f=f" "$i;
           d[f]++;
     }
END{
        for(f in d)
                if(d[f] > 1)
                 printf("file %s occurs %d times\n",f,d[f]);
                                                    }' `basename $1`
echo -e  "Please remove the dupliacte entries,\
\nkeep the file with the latest timestamp and check again"

################################CHECKING SIZE,DATE,TIME,FILENAME WITH THE EXISTING FILES############################

status=0
cat $1 | awk '{print $(NF-4),"\t",$(NF-3),"\t",$(NF-2),"\t",$(NF-1),"\t",$(NF)}' | \
while read size mon day time filename; do
    if [[ ! -f "$filename" ]]; then
        echo "ERROR: no such file: $filename" >&2
        status=1
    else
        filesize=$(ls -lrt "$filename" | awk '{print $5}')
        if [[ "$size" != "$filesize" ]]; then
            echo "ERROR: size mismatch: $filename" >&2
            status=1
        else
           # filetime=$(ls -lrt "$filename" | awk '{print $6," ",$7," ",$8}')
                actual_mon=$(ls -lrt "$filename" | awk '{print $6}')
                actual_day=$(ls -lrt "$filename" | awk '{print $7}')
                actual_time=$(ls -lrt "$filename" | awk '{print $8}')
            if [[ "$mon $day $time" != "$actual_mon $actual_day $actual_time" ]]; then
                echo "ERROR: date mismatch: $filename" >&2
                status=1
            fi
        fi
    fi
done
echo $status
if [[ "$status" -eq 0 ]];then
echo -e "\t\n\nSuccess! All the files are found and their size and timestamp is also matching with the existing files."
else
echo -e "\t\n\nFailure! Non-matching files are found or file doesn't exist."
fi


The value of status always remains 0.
How do i get the changed value from inside the while loop


On the other hand :
Code:
bash-3.00$ cat scope.sh
#!/bin/bash
x=0
while [[ "$x" -lt 10 ]];do
x=$(($x+1))
done
echo $x

here, the value of x changes to 10

why is this deviation.

Please help me i need to access the changed value in the first script but i am unable to do it.

Last edited by Franklin52; 11-07-2011 at 06:03 AM.. Reason: Please use code tags for data and code samples, thank you
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

variable in a for loop

Hi... i am trying to ping my servers .The hostnames are present in a file .They are separated by spaces in the file . i am doing the following : a=1 for name in $(cat host2 |cut -d" " -f$a) do echo Pinging server $name ping -c5 $name a=$a+1 done It is... (3 Replies)
Discussion started by: sars
3 Replies

2. Shell Programming and Scripting

loop through variable

i have these data in a variable "$test" BUNGA TERATAI 3 5055 ITH 1 1 JADE TRADER 143W ITH 4 4 MOL SPLENDOR 0307A ITH 3 3 the red coloured are the ones that i want to take and compare what I need to do is to take out the red coloured and then compare to another variable, if same then... (0 Replies)
Discussion started by: finalight
0 Replies

3. Shell Programming and Scripting

For loop Variable

Hi, Is it possible to assign one variable to other. eg. v1="table1" v2="20000" I want table1 to assign 20000 table1=20000 Is there any way? Thanks (2 Replies)
Discussion started by: SushilM
2 Replies

4. Shell Programming and Scripting

Help with variable using loop

Hi I have webserver that I do read data from. Data are stored like this: Huston |1 Portland |2 Hazen |1 Minneapolis |4 Albany |1 Pittsburg |1 Albany |1 Huston |1 Portland|1 Hazen |2 Albany |2 Huston |1 Hazen |1 Script #!/bin/sh user="admin" (1 Reply)
Discussion started by: Jotne
1 Replies

5. Shell Programming and Scripting

For loop with one variable as the name of other

Hello all, I find it hard to explain what I need so I will post the code OVZINCLUDE="16810 16811 1689" PLUS_16810="test" PLUS_16811="test" for VPS in $OVZINCLUDE do echo "Dumping VPSes: $OVZINCLUDE " vzdump --compress --snapshot ${PLUS_$VPS} $VPS done ... (2 Replies)
Discussion started by: click
2 Replies

6. Shell Programming and Scripting

[SHELL: /bin/sh] For loop using variable variable names

Simple enough problem I think, I just can't seem to get it right. The below doesn't work as intended, it's just a function defined in a much larger script: CheckValues() { for field in \ Group_ID \ Group_Title \ Rule_ID \ Rule_Severity \ ... (2 Replies)
Discussion started by: Vryali
2 Replies

7. Shell Programming and Scripting

printing variable with variable suffix through loop

I have a group of variables myLINEcnt1 - myLINEcnt10. I'm trying to printout the values using a for loop. I am at the head banging stage since i'm sure it has to be a basic syntax issue that i can't figure out. For myIPgrp in 1 2 3 4 5 6 7 8 9 10; do here i want to output the value of... (4 Replies)
Discussion started by: oly_r
4 Replies

8. UNIX for Dummies Questions & Answers

Loop and variable not exactly variable: what's wrong

Hello guys, This truly is a newbie question. I'm trying to make a loop to execute simultaneous commands indefinitely while using variable. Here is how my mess looks like (this is just an example): #!/bin/bash IP=`shuf -n 1 IP.txt` # I figured this would be easier to select random lines... (4 Replies)
Discussion started by: bobylapointe
4 Replies

9. Shell Programming and Scripting

Array Variable being Assigned Values in Loop, But Gone when Loop Completes???

Hello All, Maybe I'm Missing something here but I have NOOO idea what the heck is going on with this....? I have a Variable that contains a PATTERN of what I'm considering "Illegal Characters". So what I'm doing is looping through a string containing some of these "Illegal Characters". Now... (5 Replies)
Discussion started by: mrm5102
5 Replies

10. Shell Programming and Scripting

[Solved] How to increment and add variable length numbers to a variable in a loop?

Hi All, I have a file which has hundred of records with fixed number of fields. In each record there is set of 8 characters which represent the duration of that activity. I want to sum up the duration present in all the records for a report. The problem is the duration changes per record so I... (5 Replies)
Discussion started by: danish0909
5 Replies
EXIT(3) 								 1								   EXIT(3)

exit - Output a message and terminate the current script

SYNOPSIS
void exit ([string $status]) DESCRIPTION
void exit (int $status) Terminates execution of the script. Shutdown functions and object destructors will always be executed even if exit is called. exit is a language construct and it can be called without parentheses if no $status is passed. PARAMETERS
o $status - If $status is a string, this function prints the $status just before exiting. If $status is an integer, that value will be used as the exit status and not printed. Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully. Note PHP >= 4.2.0 does NOT print the $status if it is an integer. RETURN VALUES
No value is returned. EXAMPLES
Example #1 exit example <?php $filename = '/path/to/data-file'; $file = fopen($filename, 'r') or exit("unable to open file ($filename)"); ?> Example #2 exit status example <?php //exit program normally exit; exit(); exit(0); //exit with an error code exit(1); exit(0376); //octal ?> Example #3 Shutdown functions and destructors run regardless <?php class Foo { public function __destruct() { echo 'Destruct: ' . __METHOD__ . '()' . PHP_EOL; } } function shutdown() { echo 'Shutdown: ' . __FUNCTION__ . '()' . PHP_EOL; } $foo = new Foo(); register_shutdown_function('shutdown'); exit(); echo 'This will not be output.'; ?> The above example will output: Shutdown: shutdown() Destruct: Foo::__destruct() NOTES
Note Because this is a language construct and not a function, it cannot be called using variable functions. Note This language construct is equivalent to die(3). SEE ALSO
register_shutdown_function(3). PHP Documentation Group EXIT(3)
All times are GMT -4. The time now is 09:41 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy