Visit Our UNIX and Linux User Community


using flag inside a for loop to check condition


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting using flag inside a for loop to check condition
# 1  
Old 01-12-2009
using flag inside a for loop to check condition

I have a logic like this
It initializes the flag variable as "T" at the beginning of the loop everytime
Inside each loop it checks for two conditions and updates the flag variable as "A" or "B"
In the end of the loop it checks for the value of the variable flag for "A" or "B" and execute different steps
This is not working as expected.What is the scope of the flag variable??

for filename in `<command will get list of files>`
do
flag="T"
if [ <checks for a condition A> ]
then
echo "Correct"
else
flag="A"
fi
if [ <checks for a condition B> ]
then
echo "Correct"
else
flag="B"
fi

if [[ flag == "A" || flag == "B" ]]
then
echo " Do nothing "
else
echo "Execute steps for flag T"
fi
done
# 2  
Old 01-12-2009
For check loop - you need - if [[ $flag == "A" || $flag == "B ]]

if [[ $flag == "A" || $flag == "B" ]]
then
echo " Do nothing "
else
echo "Execute steps for flag T"
fi
done
# 3  
Old 01-12-2009
Quote:
Originally Posted by codeman007
I have a logic like this
It initializes the flag variable as "T" at the beginning of the loop everytime
Inside each loop it checks for two conditions and updates the flag variable as "A" or "B"
In the end of the loop it checks for the value of the variable flag for "A" or "B" and execute different steps
This is not working as expected.What is the scope of the flag variable??

What does "not working" mean? What happens? Why do you think that is not right?

Please put code inside [code] tags and use indentation to show the structure of your script.
Quote:
Code:
for filename in `<command will get list of files>`


Be careful using a command to get a list of filenames; it can break very easily if any filenames contain spaces or other patholigical characters.

Whenever possible, use wildcards.
Quote:
Code:
do
  flag="T"


You never check whether the value is "T", so why bother setting it?
Quote:
Code:
  if [ <checks for a condition A> ]
  then
    echo "Correct"
  else
    flag="A"
  fi
  if [ <checks for a condition B> ]
  then
    echo "Correct"
  else
    flag="B"
  fi
  
  if [[ flag == "A" || flag == "B" ]]


[[ ... ]] is non standard, as is ==. For portability, use (and don't forget to use a (quoted) variable instead of the literal "flag"):

Code:
if [ "$flag" = "A" ] || [ "$flag" = "B" ]

Quote:
Code:
  then
    echo " Do nothing "
  else
    echo "Execute steps for flag T"
  fi
done

# 4  
Old 01-12-2009
Isn't your code simply...
Quote:
for filename in `<command will get list of files>`
do
if [ <checks for a condition A> ]
then
echo " Do nothing "
elif [ <checks for a condition B> ]
echo " Do nothing "
else
echo "Execute steps for flag T"
fi
done
# 5  
Old 01-13-2009
thanks pmm johnson jerryhone for the suggestions.
i was keepin little low and couldnt see the mistake..
thanks for all for the help

Previous Thread | Next Thread
Test Your Knowledge in Computers #461
Difficulty: Medium
Simple Network Time Protocol (SNTP) is a less complex implementation of NTP, using the same protocol but without requiring the storage of state over extended periods of time.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Check two condition in while loop

Hi, I Have to check two condition in while loop every 2 minutes. while loop is accompanied with number of times it will check.Please help in putting the two condition in while loop as appropriate. z= input value, A=1 while do 1.check the file output,if the file output is N then keep on... (2 Replies)
Discussion started by: netdbaind
2 Replies

2. Shell Programming and Scripting

If else condition inside for loop of awk command in UNIX shell scripting

Hi , Please excuse me for opening a new thread i am unable to find out the syntax error in my if else condition inside for loop in awk command , my actual aim is to print formatted html td tag when if condition (True) having string as "failed", could anyone please advise what is the right... (2 Replies)
Discussion started by: karthikram
2 Replies

3. Shell Programming and Scripting

HELP with AWK one-liner. Need to employ an If condition inside AWK to check for array variable ?

Hello experts, I'm stuck with this script for three days now. Here's what i need. I need to split a large delimited (,) file into 2 files based on the value present in the last field. Samp: Something.csv bca,adc,asdf,123,12C bca,adc,asdf,123,13C def,adc,asdf,123,12A I need this split... (6 Replies)
Discussion started by: shell_boy23
6 Replies

4. Shell Programming and Scripting

setting up a flag inside awk

Hi unix gurus.... i need to set a flag inside awk. i tried many methods for that but couldn't succeed :( like echo "flag= " $flag echo "flag= " ${flag} and so...but not able to show the flag. help me out. i'm using a if condition inside awk... help me out with correct syntax to set a... (7 Replies)
Discussion started by: sukhdip
7 Replies

5. Shell Programming and Scripting

Check condition inside the loop

Hi, I am in trouble. I can get inside my condition test inside a loop : I am in ksh (solaris) while read file do <commande to retrieve file> >> ${LOG_RETRIEVE_FILE.log} msg_err=$(cat ${LOG_RETRIEVE_FILE.log} | grep "error retrieve") if ; then <sendmail> exit 1 fi done I tried... (6 Replies)
Discussion started by: Aswex
6 Replies

6. Shell Programming and Scripting

WHILE LOOP CONDITION CHECK

Hello I want to compare values of two variables as CHECK condition in a while loop. eg: var1=0 var2=10 while do echo " $var1 " var1=`expr $var1 + 1` done However this is giving error.How to do it in a proper manner? Thanks. (3 Replies)
Discussion started by: dashing201
3 Replies

7. Shell Programming and Scripting

csh if loop variable condition check peroblem

Hi, I have variables like var1 var2 var3 var4 in if loop i am trying to check the condition if(variable == "var") then echo $variable endif (0 Replies)
Discussion started by: vasanth.vadalur
0 Replies

8. Shell Programming and Scripting

condition inside a for loop

I have a for loop in my script as shown below. for file_path in $file_list ; do ........my code .......... ...... done Can i restrict the number of files parsing to the variable file_path as 50? That is, even if I have some 100 files in file_list, I need to take only 50 files for... (7 Replies)
Discussion started by: Vijay06
7 Replies

9. Shell Programming and Scripting

Checking condition inside the loop

Hi all, I have one clarification i am using the loop which will process for each record .suppose there is f ailure in the first record it need to send mail and process the next .my code: defcount=`cat <filename>|wc -l` while ] do if <some condiotion> then echo "mail" fi done so... (1 Reply)
Discussion started by: ithirak17
1 Replies

10. Shell Programming and Scripting

script to check for a condition inside a file

Hi I am writing a script file which sends the log files along with their size in a folder named log to a file called temp.log using the following cmd: ls -st 190_GSTV_HUX_003QISCGSK026** >> /home/user/temp.log the temp.log looks like this: 16 190_GSTV_HUX_003QISCGSK026_message070321.log ... (11 Replies)
Discussion started by: kiran1112
11 Replies

Featured Tech Videos