Both if and else are not working


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Both if and else are not working
# 1  
Old 02-28-2014
Both if and else are not working

Hello ,

Below is the code :

Code:
if [ "$targ" = "pref" ]; then
Inst=`$ORACLE_HOME/bin/srvctl status database -d | grep -E "$Avail"|awk '{print ($NF)}'`
echo "Insttest";
if [ "$host = "$Inst" ]; then
Reloc=`$ORACLE_HOME/bin/srvctl relocate service -d $database -s $service -i $Avail -t $Pref -f`
fi
else
Inst=`$ORACLE_HOME/bin/srvctl status database -d | grep -E "$Pref"|awk '{print ($NF)}'`
echo "Insttest";
if [ "$host = "$Inst" ]; then
Reloc=`$ORACLE_HOME/bin/srvctl relocate service -d $database -s $service -i $Pref -t $Avail -f`
fi
fi;;


None of the Insttest is being printed which means that neither if nor else part is being executed.

Please advise.


Best regards,
Vishal

Last edited by Scrutinizer; 02-28-2014 at 11:34 AM.. Reason: Repaired broken code tags
# 2  
Old 02-28-2014
You set a variable named Inst and print the contents of a variable named Insttest. Since you never set Insttest, why would you expect any output (other than blank lines)?
# 3  
Old 02-28-2014
What happens above that code? A runaway here-document might be eating the rest of your program, or you might have missed an exit (or accidentally called a function with exit in it) etc etc.
# 4  
Old 02-28-2014
Take a look at if [ "$host" = "$Inst" ]; then twice...

Last edited by wisecracker; 02-28-2014 at 12:22 PM..
This User Gave Thanks to wisecracker For This Post:
# 5  
Old 02-28-2014
If you indent your code, it might make it clearer where the various clauses are. For the first test, if the value of $targ is the string pref or not, you should see the output "Insttest"

Not sure on the trailing ; though.

Code:
if [ "$targ" = "pref" ]; then
   Inst=`$ORACLE_HOME/bin/srvctl status database -d | grep -E "$Avail"|awk '{print ($NF)}'`
   echo "Insttest";
   if [ "$host = "$Inst" ]; then
      Reloc=`$ORACLE_HOME/bin/srvctl relocate service -d $database -s $service -i $Avail -t $Pref -f`
   fi
else
   Inst=`$ORACLE_HOME/bin/srvctl status database -d | grep -E "$Pref"|awk '{print ($NF)}'`
   echo "Insttest";
   if [ "$host = "$Inst" ]; then
      Reloc=`$ORACLE_HOME/bin/srvctl relocate service -d $database -s $service -i $Pref -t $Avail -f`
   fi
fi;;

What do you see?


Robin
# 6  
Old 02-28-2014
Hello,

This is AIX platform.The problem is here that when in the first if condition

Code:
if targ=pref

It is running fine if targ value is pref however if targ=avail it exits from if else.

It appears to me that the statement is failing when it compares as below

Code:
pref(targ)=avail

and even it doesn't go to else and simply go for next service in loop.

Is there a way that we can make string comparison in AIX such that if the strings are not equal in first if then it should go to else part rather showing failure going to the next service in for loop


Best regards,
Vishal
# 7  
Old 02-28-2014
Quote:
Originally Posted by Vishal_dba
Hello,

This is AIX platform.The problem is here that when in the first if condition

Code:
if targ=pref

It is running fine if targ value is pref however if targ=avail it exits from if else.

It appears to me that the statement is failing when it compares as below

Code:
pref(targ)=avail

and even it doesn't go to else and simply go for next service in loop.

Is there a way that we can make string comparison in AIX such that if the strings are not equal in first if then it should go to else part rather showing failure going to the next service in for loop


Best regards,
Vishal
We have pointed out several problems in your code.

Have you made any changes based on our comments?

What shell are you using? What for loop?

Please show us your current code and a trace (set -xv) for this code (so we can see what values are being processed and figure out what branches are being taken).
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Disk Space Utilization in HTML format working in one environment and not working on the other

Hi Team, I have written the shell script which returns the result of the disk space filesystems which has crossed the threshold limit in HTML Format. Below mentioned is the script which worked perfectly on QA system. df -h | awk -v host=`hostname` ' BEGIN { print "<table border="4"... (13 Replies)
Discussion started by: Harihsun
13 Replies

2. Shell Programming and Scripting

Working web service call not working with curl

Hello, Newbie here, I have a perfectly well working web service call I can issue from chrome (PC Windows 10) and get the results I want (a dimmer being turned on in Fibaro Home Center 2 at level 40) I am not allowed to post urls but the below works with http and :// and... (3 Replies)
Discussion started by: abigbear
3 Replies

3. Shell Programming and Scripting

PHP cronjob not working but manual working

Hi, Can anyone help me on my PHP cron not working, but when i do the manual it work. # manual run working /usr/local/bin/php /root/dev/test.php # crontab not working 55 8 * * * /usr/local/bin/php /root/dev/test.php Thank in advances Regards, FSPalero Please use CODE tags as... (2 Replies)
Discussion started by: fspalero
2 Replies

4. Shell Programming and Scripting

Automating pbrun /bin/su not working, whenever manually it is working using putty

I am trying to automate a script where I need to use pbrun /bin/su but for some reason it is not passing thru the pbrun as my code below. . ~/.bash_profile pbrun /bin/su - content c h 1 hpsvn up file path I am executing this from an external .sh file that is pointing to this scripts file... (14 Replies)
Discussion started by: jorgejac
14 Replies

5. Red Hat

Nslookup working but ping not working at windows client

Hi Team we have created a DNS server at RHEL6.2 environment in 10.20.203.x/24 network. Everything is going well on linux client as nslookup, ping by host etc in entire subnet. We are getting problem in windows client as nslookup working as well but not ping. all the firewall is disabled and... (5 Replies)
Discussion started by: boby.kumar
5 Replies

6. Shell Programming and Scripting

Script not working in cron but working fine manually

Help. My script is working fine when executed manually but the cron seems not to catch up the command when registered. The script is as follow: #!/bin/sh for file in file_1.txt file_2.txt file_3.txt do awk '{ print "0" }' $file > tmp.tmp mv tmp.tmp $file done And the cron... (2 Replies)
Discussion started by: jasperux
2 Replies

7. Solaris

SSH: internal working but external not working

Hi, This is a strange issue: We have an sftp server. Users can ssh to it from internal LAN without any issue, but they can not ssh to it externally via firewall. Here is what I got: OS is Solaris 9. No hosts.allow and hosts.deny files. Please help. Thank you in advance! (7 Replies)
Discussion started by: aixlover
7 Replies

8. Shell Programming and Scripting

Script is not working from cron while working manually

Hello, I am facing a very strange problem when I run my script manuallu ./Fetchcode which is using to connect with MKS integrity from linux end it workks fine but when I run it from cron it doesn't work.Can someone help me 1) How could I check my script when it is running from cron like... (3 Replies)
Discussion started by: anuragpgtgerman
3 Replies

9. Linux

FTP not working under Linux but working under any other OS ??? Very strange

Dear all, I am totally despaired and puzzled. Using Filezilla under Windows under the same network as our Linux servers is working. Using FTP command-line client under any of our Linux debian servers is not working ! I tried with different FTP servers -> same problem ! All commands are... (12 Replies)
Discussion started by: magix_ch
12 Replies

10. Solaris

GUI not working... CLI is working fine

Hello, I have X4500 running Solaris 10. I can access it through CLI but I cannot see the GUI. When I reboot it, the GUI works till all the files are loaded (ie., the initial boot sequence) and it prompts me to enter username and password and there it ends. The screen just has a blinking cursor... (4 Replies)
Discussion started by: bharu_sri
4 Replies
Login or Register to Ask a Question