Condition checking issue while if


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Condition checking issue while if
# 15  
Old 07-19-2013
above reply is really helpful, but i am facing error when i used = operator in the first condition:
Code:
if [ "$end_ct" = "END CAT" ] || [ $emtr_cnt -eq 1 ]; then


and the error which i am facing is :
Code:
bravo_main_refresh.sh: test: unknown operator ----------

# 16  
Old 07-19-2013
Quote:
Originally Posted by lovelysethii
above reply is really helpful, but i am facing error when i used = operator in the first condition:
Code:
if [ "$end_ct" = "END CAT" ] || [ $emtr_cnt -eq 1 ]; then


and the error which i am facing is :
Code:
bravo_main_refresh.sh: test: unknown operator ----------

So we know that $end_cnt does not expand to END CAT and we know that $emtr_cnt does not expand to a string of decimal digits.

Several posts back, I asked you to turn on tracing and show us the output. You never did that. Please help yourself and us by turning tracing on early in your script with:
Code:
set -xv

show us your complete updated script, and show us the output from the trace if it isn't obvious what is going wrong when you look at the trace output.
# 17  
Old 07-19-2013
If you are not sure do an example longhand to get your head around it!

An example:-
Code:
#!/bin/bash --posix
# if_then.sh
end_ct="END DOG"
emtr_cnt=0
# If first is correct _OR_ second is correct...
if [ "$end_ct" == "END CAT" ] || [ $emtr_cnt -eq 1 ]
then
	echo "Woohoo at least one works..."
else
	echo "Neither are correct!!!"
fi
# The first result will be "Neither are correct!!!"
# Now change one or both of the two variables to a correct value and rerun!

Change one or both of the variables to the correct value and rerun...
Code:
Last login: Fri Jul 19 12:48:00 on ttys000
AMIGA:barrywalker~> ./if_then.sh
Neither are correct!!!
AMIGA:barrywalker~>

# 18  
Old 07-22-2013
here is my updated string:

Code:
#!/bin/csh


# ***  Lovely Sethi 08/2013  ***
#  This process executes the BRAVO_MAIN_REFRESH.sql
#
#  This file should be scheduled in CRONTAB to run each Big run.

#  /uv1402/u207/home/bravodba/bestdbscript/shscriptfiles/RUNDATE.sh

end_ct=`sqlplus -s $ORACLE_USER/$ORACLE_PASS@$ORACLE_SID   << EOF
                select description from bravo_statistics
                where trunc(time_stamp)=trunc(sysdate)-4
                and description='END CAT';
EOF`
echo $end_ct;
emtr_cnt=`sqlplus -s $ORACLE_USER/$ORACLE_PASS@$ORACLE_SID   << EOF
                select count(*) from mrs.bill_cal
                where trunc(actual_run_date)=trunc(sysdate)-3;
EOF`
echo $emtr_cnt;
if [ "$end_ct" -eq "END CAT" ] && [ $emtr_cnt -eq 1 ]; then
echo $end_ct
else
echo "value not found"
fi

#sqlplus $ORACLE_USER/$ORACLE_PASS@$ORACLE_SID @/uv1402/u207/home/bravodba/bestdbscript/sqlscriptfiles/BRAVO_MAIN_REFRESH.sql
#/uv1402/u207/home/bravodba/bestdbscript/shscriptfiles/sendmailanalysisrefresh.sh

value of both the variables are true, so it should echo $end_ct, but instead it is first giving an error:
Quote:
sh bravo_main_refresh.sh
+ sh bravo_main_refresh.sh
DESCRIPTIO ---------- END CAT
COUNT(*) ---------- 1
bravo_main_refresh.sh: test: unknown operator ----------

please suggest
# 19  
Old 07-23-2013
$end_ct contains a numeric value or a string value??

if it contains string value then use
Code:
if [ "$end_ct" = "END CAT" ] && [ $emtr_cnt -eq 1 ]; then
      echo $end_ct
else
      echo "value not found"
fi

-eq is normally used for comparing numeric values.
# 20  
Old 07-23-2013
i have already done this, but it is giving some error like :
Code:
if [ "end_ct" == "END CAT" ]; then

and the error is :
Quote:
bravo_main_refresh.sh: test: unknown operator ==
don't know why
# 21  
Old 07-23-2013
Quote:
Originally Posted by lovelysethii
i have already done this, but it is giving some error like :
Code:
if [ "end_ct" == "END CAT" ]; then

and the error is :


don't know why
use single = instead of double(==)..

---------- Post updated at 08:56 AM ---------- Previous update was at 08:47 AM ----------

just try the below thing.. i am not sure, but just try once.
Code:
if test "$end_ct" = "END CAT" ; then
        echo "$end_ct"
else
        echo "value not found"
fi

---------- Post updated at 09:00 AM ---------- Previous update was at 08:56 AM ----------

are you using csh?? if its csh try with this syntax

Code:
if    ( Expression1 ) then 
    block A1
  else  if  ( Expression2 )
    block A2
  else  if  ( Expression3 )
    block A3
    ...
  else  if  ( Expression i-1 )
    block Ai-1
  else 
    block Ai
  endif

syntax differs in bash and csh
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Checking for null condition in a UNIX variable

i have this code for i in `cat sql_output.txt` do -- some script commands done sql_output.txt has 1 column with employee_ids If the sql_output.txt is null then the do loop should not execute. How can i implement this. for i in `cat sql_output.txt` If i is null or empty then ... (5 Replies)
Discussion started by: rafa_fed2
5 Replies

2. Shell Programming and Scripting

Condition checking in UNIX

i have a script where i have to find the age of a file, if then echo "dnb file is present for the monthly load" >> $RUNLOG dnb="1" else echo "dnb file has not arrived yet" > $ERRLOG dnb="0" fi i know the file is available so... (3 Replies)
Discussion started by: lovelysethii
3 Replies

3. Shell Programming and Scripting

Checking file existence along with condition

Hi am trying to write a script which find the existence of a file from a find command output and perform a task if the file exists. Help me out with the correct syntax . Am trying with the following one but unable to get the output. if then <some tasks> else echo "file not exists" fi (5 Replies)
Discussion started by: rogerben
5 Replies

4. Shell Programming and Scripting

Multiple condition checking in bash

Hi All, I am trying to check if two variables have value assigned to it. i am doing it like if ] then echo "Please specify either single hostname or host file for the report" usage exit fi But its not working for it.Even i specify values for both variables it dont go... (6 Replies)
Discussion started by: kailash19
6 Replies

5. Shell Programming and Scripting

create separate file after checking condition..

Problem : I want to create a separate file for country list if condition is true. Please help. ***************************************************** Input file: SV-INCR-139302-365540488-201104090934.sqllog SV-INCR-1082-552793184-201104040805.sqllog SV-INCR-1077-855045741-201104040805.sqllog... (4 Replies)
Discussion started by: humaemo
4 Replies

6. Shell Programming and Scripting

Cutting specific line of a file by checking condition

testfile.csv 0","1125209",,"689202CBx18888",,"49",,,"NONMC",,,,,"01112010",,,,,,,"MTM- "1","",,"689202ABx19005",,"49",,,"NONMC",,,,,"01072010",,,,,,,"MTM- testfile.csv looks like above format if the second column is null then get 23rd column and store in a different varible .. add all the... (1 Reply)
Discussion started by: mgant
1 Replies

7. Shell Programming and Scripting

Unzip file By checking condition.

Hi.. Gurus I Have a list of .zip files in a directory. I want to check whether each .zip file having some particular file or not (say .jsp) if it's having .Jsp file then create a directory as per the .zip file and extract the content to that directory except the .jsp file, If .zip not having... (3 Replies)
Discussion started by: posix
3 Replies

8. Shell Programming and Scripting

sed solution for condition checking

Hi all , Recently i came across this in FAQ's. I have a file cat rem.txt sreedhar 20 sreedhar 10 sreedhar 15 sreedhar 18 sreedhar 16 sreedhar 30 I have to replace sreedhar with "Sridhar" if the second parameter is > 18. I need to do it in "sed" only. I am wondering how this... (4 Replies)
Discussion started by: panyam
4 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

Condition checking

Dear all That's another problem from me, i wanna do a lot of if statement checking for correct input by user, will be prompt input again if the input not meet the requirement defined by If or while statement... like this one .... while I know it's less effiency write the program... (14 Replies)
Discussion started by: trynew
14 Replies
Login or Register to Ask a Question