Sponsored Content
Top Forums Shell Programming and Scripting Variable changes after a loop Post 302499532 by llelkes on Thursday 24th of February 2011 02:39:55 PM
Old 02-24-2011
Data Variable changes after a loop

Hi, I am a beginner with shell programming:
the code is following:

Code:
#!/usr/bin/ksh

v_res="start"
echo "v_res_begin="$v_res

grep -E "#FlatFiles" "a.log" | while IFS= read vLine
do

  set -- $vLine

  v_res="error"

  # there is some code ... if error then break


  echo "v_res_loop1="$v_res
  v_res="ok"
  echo "v_res_loop2="$v_res

done

echo "v_res_after_loop="$v_res


file a.log:
Code:
*************** Start of Group read and Group insert log ***************

#FlatFiles 10001 17487 test1.ctl test1.bad 12944
#FlatFiles 10001 17488 test1.ctl test1.bad 18119
#FlatFiles 10001 17489 test1.ctl test1.bad 11526

result:

Code:
v_res1=start
v_res2=ok
v_res1=error
v_res2=ok
v_res1=error
v_res2=ok
v_res_after_loop=error

This script was working on AIX, now it is on READHAT. I found out (google), that if pipe is used than it is in different scope and global parameters are not set ... but I do not undestand what does it really mean, and how can I fix the code.

Thank for Your help, regards,
Laci

Last edited by pludi; 02-24-2011 at 03:46 PM..
 

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
break(1)							   User Commands							  break(1)

NAME
break, continue - shell built-in functions to escape from or advance within a controlling while, for, foreach, or until loop SYNOPSIS
sh break [n] continue [n] csh break continue ksh *break [n] *continue [n] DESCRIPTION
sh The break utility exits from the enclosing for or while loop, if any. If n is specified, break n levels. The continue utility resumes the next iteration of the enclosing for or while loop. If n is specified, resume at the n-th enclosing loop. csh The break utility resumes execution after the end of the nearest enclosing foreach or while loop. The remaining commands on the current line are executed. This allows multilevel breaks to be written as a list of break commands, all on one line. The continue utility continues execution of the next iteration of the nearest enclosing while or foreach loop. ksh The break utility exits from the enclosed for, while, until, or select loop, if any. If n is specified, then break n levels. If n is greater than the number of enclosing loops, the outermost enclosing loop shall be exited. The continue utility resumes the next iteration of the enclosed for, while, until, or select loop. If n is specified then resume at the n- th enclosed loop. If n is greater than the number of enclosing loops, the outermost enclosing loop shall be used. On this man page, ksh(1) commands that are preceded by one or two * (asterisks) are treated specially in the following ways: 1. Variable assignment lists preceding the command remain in effect when the command completes. 2. I/O redirections are processed after variable assignments. 3. Errors cause a script that contains them to abort. 4. Words that follow a command preceded by ** that are in the format of a variable assignment are expanded with the same rules as a vari- able assignment. This means that tilde substitution is performed after the = sign, and also that word splitting and file name genera- tion are not performed. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ SEE ALSO
csh(1), exit(1), ksh(1), sh( 1), attributes(5) SunOS 5.10 17 Jul 2002 break(1)
All times are GMT -4. The time now is 06:48 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy