If condition issue


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers If condition issue
# 1  
Old 01-21-2011
If condition issue

Hello,

I am using the following code

Code:
#!/bin/sh

chris='rerun'
chris2=$1

echo "chris=$chris"
echo "chris2=$chris2"


if ["$chris" -eq "$chris2"]
 then
        echo "RERUN"
else
         echo "NOT RERUN"
fi

When i run ./test.sh rerun i get the following error
Code:
chris=rerun
chris2=rerun
./test.sh: [rerun: not found
NOT RERUN

Could you please let me know what is wrong

Last edited by Scott; 01-21-2011 at 08:49 AM.. Reason: Replaced TABLE tags with CODE tags
# 2  
Old 01-21-2011
space matter... as well as curly brace since $chris2 contains $chris and can be missinterpreted

use -eq for numeric values
otherwise you should use the = sign


Code:
if [ "$chris" = "${chris2}" ]

and all occurrence of $chris2 should be replaced with ${chris2}

Your code could be shorten if could consider a case statement :
Code:
case $1 in
"rerun") echo "RERUN" ;;
*) echo "NO RERUN" ;;
esac


Last edited by ctsgnb; 01-21-2011 at 06:05 AM..
# 3  
Old 01-21-2011
You missed blank chars ...
Code:
if [ "$chris" -eq "$chris2" ]


Last edited by Scott; 01-21-2011 at 08:49 AM..
# 4  
Old 01-21-2011
Thank you for your quick reply but both of the above comment are not working, both are returning the same wrong result
Code:
rovolis@SLBATH004:/usr/users/rovolis/PREPAID/file_conc $ ./test.sh
chris=rerun
chris2=
RERUN

As you see i do not pass the 'rerun' argument and is still finds a match

Last edited by Scott; 01-21-2011 at 08:49 AM..
# 5  
Old 01-21-2011
For me it works :

Code:
# cat mtst
#!/bin/sh
chris='rerun'
chris2=$1
echo "chris=$chris"
echo "chris2=$chris2"
if [ "$chris" = "${chris2}" ]
then
echo "RERUN"
else
echo "NOT RERUN"
fi

Code:
# sh mtst
chris=rerun
chris2=
NOT RERUN

Code:
# sh mtst jdsk
chris=rerun
chris2=jdsk
NOT RERUN

Code:
# sh mtst rerun
chris=rerun
chris2=rerun
RERUN
#

1) reread my post #2 (i have updated it)

2) please post the resulte of cat ./test.sh

Last edited by ctsgnb; 01-21-2011 at 06:47 AM..
# 6  
Old 01-21-2011
Try using set -x to see what is going on Debugging Bash scripts
# 7  
Old 01-21-2011
Belt and braces (and good commercial script technique). Let's change the name of the variable and use braces everywhere. Also make sure we have a space character after "[" and another space character before "]" ... and use a text comparision "=" (not a numeric comparision "-eq") .

Code:
#!/bin/sh
chris1="rerun"
chris2="${1}"

echo "chris1=${chris1}"
echo "chris2=${chris2}"

if [ "${chris1}" = "${chris2}" ]
then
        echo "RERUN"
else
         echo "NOT RERUN"
fi

./test.sh
chris1=rerun
chris2=
NOT RERUN

./test.sh rerun
chris1=rerun
chris2=rerun
RERUN

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issue with condition "if then elif else fi"

Hi everybody, I must get trought a shell script 3 arguments. 1st argument = $1 (can take values REP1..4) 2nd argument = $2 (can take values A..Z) 3rd arguement = $3 (also can take values A...Z) I've written this code : #!/bin/bash if then liste=/data/folder1 echo... (6 Replies)
Discussion started by: shellX
6 Replies

2. Shell Programming and Scripting

Solaris 11 ksh93 if condition issue

Solaris 11 ksh93 if condition issue Has anyone run into issues with Solaris 11 with ksh93 if condition where it intermittently return wrong return code? We did not see this issue in Solaris 10 with ksh88 Any thoughts? Thanks! Solaris version: SunOS t52-ccc-28 5.11 11.2... (4 Replies)
Discussion started by: nugent
4 Replies

3. Shell Programming and Scripting

Issue with IF condition

Getting syntax error when the condition after -o returns more than one file if then echo "Found" fi output: =>ls -l total 5 -rw-rw-r-- 1 wes wes 0 Jun 25 04:51 a.done -rw-rw-r-- 1 wes wes 0 Jun 25 04:51 a.zip -rw-rw-r-- 1 wes wes ... (13 Replies)
Discussion started by: anijan
13 Replies

4. Shell Programming and Scripting

If Condition Issue in UNIX

Hi I am trying to do a "IF" Condition in UNIX where we compare EACH file size in a directory with a SIZE (Parameter passed) If Each File size EXCEEDS parameter passed SIZE then we manipulate the file. Somehow the IF condition do not work ?? (is this Variable decalration issue ??) ... (9 Replies)
Discussion started by: Pete.kriya
9 Replies

5. Shell Programming and Scripting

Condition checking issue while if

hi, i am using a simple condition end_ct=`sqlplus -s $ORACLE_USER/$ORACLE_PASS@$ORACLE_SID << EOF select description from bravo_statistics where trunc(time_stamp)=trunc(sysdate)-1 and description='END CAT'; EOF` echo $end_ct; echo... (30 Replies)
Discussion started by: lovelysethii
30 Replies

6. Shell Programming and Scripting

if condition issue

Hi, I have prepared the below shell script for one of the requirement which accesses Informatica application and performs certain functions. But for some reason, if condition fails and scripts stops abruptly with the below error. Please let me know the where the problem is #!/bin/ksh ... (2 Replies)
Discussion started by: svajhala
2 Replies

7. Shell Programming and Scripting

Unix and db2 where condition issue(new line)

Hi I am extracting a column value(DESCRIPTION) from one table and passing it to another db2 statement in a shell code to fetch some value(ID) but the value when passed in where condition is taking as newline+value. Please find the out put when executed: + echo description is ::::... (1 Reply)
Discussion started by: msp2244
1 Replies

8. Shell Programming and Scripting

redirect stdout echo command in condition A run in condition B

hi, I have some problems in my simple script about the redirect echo stdout command inside a condition. Why is the echo command inside the elif still execute in the else command Here are my simple script After check on the two diff output the echo stdout redirect is present in two diff... (3 Replies)
Discussion started by: jao_madn
3 Replies

9. Shell Programming and Scripting

if condition issue

Hi, Unix Gurus, I got some issue with my script. #!/usr/bin/ksh while read newstatus do if ; then echo "It is finished " else echo "Not Finished" fi done <checkresult.txt basically, I want to read one file (the file only contains one word, but it dynamically changed),... (2 Replies)
Discussion started by: ken002
2 Replies

10. Shell Programming and Scripting

An issue with condition statement in shell script

Hello forum members. please go through the below mentioned issue and let me know the right solution. I have to write a script which runs another script .the executable script take input parmeters.so iam writing the the script below . Sample Code:Begins #! /bin/ksh echo " enter... (2 Replies)
Discussion started by: rajkumar_g
2 Replies
Login or Register to Ask a Question