Shell script to check a command executed sucessfully or not


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Shell script to check a command executed sucessfully or not
# 1  
Old 01-29-2020
Shell script to check a command executed sucessfully or not

Hi All,


I am trying to write a shell script to check if a command executed successfully or not in rhel 7 and finding the installed tomcat version.


I am using below script.


Code:
var4=$(find / -name "catalina.jar" ! -size 0 |egrep -v "tmp|docker|WinSxS|Permission|HISTORY|alternatives|bearer11ssl|manifest")

i=`which java`


for loc4 in $var4
do

abc=`$i -classpath $loc4 org.apache.catalina.util.ServerInfo`
xyz="$abc"
status=$?
if [ $status -eq 0 ];then
 #   tomcat_version=`grep -w "Server number:" $xyz`
  #$xyz > /tmp/tomcat
  echo -e "{\"'tomcat'\":\"'"$xyz"'\"}"
fi

done



But when i am trying to execute script it's displaying the output info even if the command not executed successfully.




Output :



Code:
Error: Could not find or load main class org.apache.catalina.util.ServerInfo
{"'tomcat'":"''"}
{"'tomcat'":"'Server version: Apache Tomcat/9.0.30 Server built: Dec 7 2019 16:42:04 UTC Server number: 9.0.30.0 OS Name: Linux OS Version: 3.10.0-1062.9.1.el7.x86_64 Architecture: amd64 JVM Version: 1.8.0_171-b11 JVM Vendor: Oracle Corporation'"}


Last edited by Scrutinizer; 01-29-2020 at 05:03 PM..
# 2  
Old 01-29-2020
Hi,

Looking at this snippet:
Code:
xyz="$abc"
status=$?

$? will always be true (0) since the previous command is xyz="$abc" which is a variable assignment, which will always be successful..
# 3  
Old 01-29-2020
Hi Scrutinizer,


Thanks for the reply.


if $abc executed successfully then only i want to print that output.
# 4  
Old 01-29-2020
Quote:
Originally Posted by sravani25
...
if $abc executed successfully then only i want to print that output.
$abc can't be executed as it is a variable holding the result of the "command substitution". If you want to check if that was OK, move the status assignment one up, then:


Code:
abc=`$i -classpath $loc4 org.apache.catalina.util.ServerInfo`
status=$?
xyz="$abc"

# 5  
Old 01-30-2020
It might be that you are not getting output but actually it is errors being displayed. Standard output (good things you want to see) are written to file descriptor 1. Standard errors (bad things that you usually want to see) are written to file descriptor 2. Both of these are usually directed to the screen, but I think you are wanting to ignore some of them.

You might try directing your error output elsewhere. Some examples of this could be:-
Code:
some_command  2>  /tmp/error_file    # Save the errors to this file
some_command  2>  /dev/null          #  Actually I don't care, just bin them
some_command  2>  &1                 # Redirect errors to standard output

This last one can be useful if you want to consider the messages returned.


Does that get you moving?




Kind regards,
Robin
# 6  
Old 01-31-2020
Hi rbatte1 and Rudi,


Thanks for the reply.

My intention is when ever I run the below command, if the output is successful then I want to print successful output need to ignore if the command output is not successfull.
Code:
$i -classpath $loc4 org.apache.catalina.util.ServerInfo

But I tried to redirect the output but still getting error messages.
Code:
Error: Could not find or load main class org.apache.catalina.util.ServerInfo
{"'tomcat'":"'Server version: Apache Tomcat/9.0.30 Server built: Dec 7 2019 16:42:04 UTC Server number: 9.0.30.0 OS Name: Linux OS Version: 3.10.0-1062.9.1.el7.x86_64 Architecture: amd64 JVM Version: 1.8.0_171-b11 JVM Vendor: Oracle Corporation'"}


Moderator's Comments:
Mod Comment
Please wrap all code, files, input & output/errors in CODE tags.
It makes them easier to read and preserves spacing for indenting or fixed-width data.

Last edited by rbatte1; 02-06-2020 at 06:19 AM..
# 7  
Old 02-06-2020
Can you show us how you tried to redirect the output?

Please wrap your commands and the output in CODE tags. To do this, you can simply highlight your text that is code or data and then click on the </> in the editing menu. (You can also type code tags [code] and [/code] by hand.)






Robin
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

To check if the JAVA Program is successfully executed in sh shell scripting

Hi , I have written a shell script to call a java program say load_id.sh .This sh script indeed is executed implicitly in other sh script which calls 2 more sh scripts one by one. I need to check if the load_id.sh (which calls java program) is executed successfully only then continue with... (1 Reply)
Discussion started by: preema
1 Replies

2. Shell Programming and Scripting

awk command not getting executed in shell script

I am able to execute awk command from shell prompt. but the same command is not getting executed when written and run in a bash script the command from bash cmd prompt. awk '/world/{for (i=2; i<NF; i++) printf $i " "; print $NF}1' myfile >tmp$$ ; mv tmp$$ myfile file: # hello world my... (4 Replies)
Discussion started by: ashima jain
4 Replies

3. Shell Programming and Scripting

Check/get the exit status of a remote command executed on remote host through script

Geeks, Could you please help me out in my script and identify the missing piece. I need to check/get the exit status of a remote command executed on remote host through script and send out an email when process/processes is/are not running on any/all server(s). Here's the complete... (5 Replies)
Discussion started by: lovesaikrishna
5 Replies

4. UNIX for Dummies Questions & Answers

Set Command to output a log of every command executed in the script

Hi Guys, I like to output every command executed in the script to a file. I have tried set -x which does the same. But it is not giving the logs of the child script which is being called from my script. Is there any parameters in the Set command or someother way where i can see the log... (2 Replies)
Discussion started by: mac4rfree
2 Replies

5. UNIX for Dummies Questions & Answers

How to send keyboard inputs toa UNIX command executed from a shell script?

I have a unix command that prompts for 'y'. How do I run this from my shell script? (4 Replies)
Discussion started by: Sree10
4 Replies

6. Shell Programming and Scripting

Shell script not getting executed

Hi As per my requirement when I run . ./file.sh am getting the following error -bash:ELF: command not found when i execute as ./file.sh it is getting executed.How to resolve this. Thanks in advance. (3 Replies)
Discussion started by: pracheth
3 Replies

7. Shell Programming and Scripting

Need help! command working ok when executed in command line, but fails when run inside a script!

Hi everyone, when executing this command in unix: echo "WM7 Fatal Alerts:", $(cat query1.txt) > a.csvIt works fine, but running this command in a shell script gives an error saying that there's a syntax error. here is content of my script: tdbsrvr$ vi hc.sh "hc.sh" 22 lines, 509... (4 Replies)
Discussion started by: 4dirk1
4 Replies

8. Shell Programming and Scripting

Verifying if the shell command executed or not?

Hi, I am working on a shell script that would verify if the mount command has executed or not. So , i have been doing this. mount /dev/cdrom /mnt/cdrom echo "$?" if ; then echo " Mount succesful" else echo " Mount unsuccessful" fi (3 Replies)
Discussion started by: eamani_sun
3 Replies

9. Shell Programming and Scripting

perl - why is the shell script executed before the print command?

i'm writing some simple scripts to help me learn perl. why does the print command get called after the shell script is executed? the purpose of the shell script is to simply echo to the screen "script run". which is does, but before the print command, you can clearly see the shell script is... (3 Replies)
Discussion started by: mjays
3 Replies

10. Shell Programming and Scripting

problem executed shell command from PL/SQL

i wrote plsql procedure that executed shell command using java class my problem is that in some reason the shell command ( liks Is -l , mv ... ) are not recordnize can someone help me with that 10x Alodvg (2 Replies)
Discussion started by: alodvg
2 Replies
Login or Register to Ask a Question