Testing for exit status

Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Testing for exit status
# 1  
Old 02-07-2001
I understand what the exit status of a command is, but I am unclear on how to test for it. A brief example is all I really need.
# 2  
Old 02-07-2001
This is just an example of some logic:

ps -ef | grep sendmail | grep -v grep;

if [ $? .eq 1 ] then "restart sendmail;

if [ $? .eq 0 ] then exit;

In the fragment above, the script checks for a running sendmail process. If it returns 'something' (in this case a match on sendmail) the return code is 0. If it returns nothing (no match, process not running) it returns 1. This is how I used to use return codes in shell scripts (similar in C programs, etc.)
# 3  
Old 02-07-2001
Thanks Neo (as always). One more question. What does the $? signify?
# 4  
Old 02-07-2001
$? is the built-in shell variable that holds the exit code of the last command executed in the shell. I think it is used in many shells, but I am not sure which ones exactly. I've used it in KSH and SH (as I recall, but I don't work in Bourne shell, mostly KSH). I do recall $? used to hold the exit code of the last command in the Bourne shell from a 10 year ago past project. Maybe after coffee the neurons with fire from this memory bank Smilie Hope this helps clarify.
# 5  
Old 02-18-2002
I am using CSH and trying to get a similar thing as follows.
I am not getting where I go wrong. could anyone please guide me?

set a = `grep "primary \# secondary" ar128.log`
if($a == 0) then
sed 's/primary \# secondary/secondary \#primary \#secondary/' ar128.log > ar128.log.ext
sed 's/secondary \#primary \#secondary/primary \# secondary/' ar128.log > ar128.log.ext

i get no error even...

# 6  
Old 02-18-2002
A command like:
grep string < file
finds the lines that match string in file. You are setting your "a" variable to all those lines. And the result of the grep will never be a "0" since the string you are searching for is not "0". If nothing matches the string, grep doesn't print a 0. It prints nothing at all. In that case the "a" variable is empty and still won't match "0".

Try piping the grep to "wc -l" so that you set "a" to a count of the lines.
# 7  
Old 02-19-2002
Hi Perderabo,
I was actually trying to get the return value from the grep.
through man grep I found that the return values for grep are like this

0 One or more matches found.
1 No match found.
2 Syntax error or inaccessible file
(even if matches were found).

but while I wanted to print $a it worked as u said. In this case, how can i get these return values ? and If I get that do you think my script would work?

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Want to get the exit status

Hi All, I am trying to create a zip file with all the txt files(these are in large number) in the current directory. I am able to do this operation sucessfully. After this i want to get the status of the tar command executed and do accordingly. When i am trying with the below code, the status... (3 Replies)
Discussion started by: paddu
3 Replies

2. Shell Programming and Scripting

Exit Status

I have a shell script (#!/bin/sh) that interacts with Appworx and Banner Admin. In my script I want to check the exit status of awrun before continuing. awrun can run for 10 seconds or it can run for over a minute. So my question is, will it go through my if statement before awrun may even be... (2 Replies)
Discussion started by: smkremer
2 Replies

3. Shell Programming and Scripting

Exit status of grep

I am trying to get the exit status of grep and test a condition with it, But it does not seem to be working as expected since i am doing something wrong apparently as per grep help Exit status is 0 if match, 1 if no match, and 2 if trouble. My problem is something like this templine - a... (7 Replies)
Discussion started by: prasbala
7 Replies

4. UNIX for Dummies Questions & Answers

$? = Exit status variable

hi, exit status variable $?, returns some digits. 0 ---> succes. 1..126 Failure (the program itself will decide what the numbers mean) 127 Command not found 128..254 The program did not exit normally. (E.g., it crashed, or received a signal) 255 Invalid exit code well, if $?... (4 Replies)
Discussion started by: dummydba
4 Replies

5. Shell Programming and Scripting

Exit status

I'm preparing for exam and one of exams is to write own test command... I wonder if in unix is a command which just returns exit code you specify.. I know I can easily write a function like this: exStatus() { return $1 } -> my question is rather theoretical thank you! (9 Replies)
Discussion started by: MartyIX
9 Replies

6. Shell Programming and Scripting

How to get the exit status

Hi all, I'm running a program which return 1 upon success. But when encounters problem shell return 's '1' . How to differentiate between them the shell return value and script return value. Ex. function fn return '1' if executed successfully and '0' if failed. But when if shell encounters... (1 Reply)
Discussion started by: yhacks
1 Replies

7. Shell Programming and Scripting

exit status for isql

I'm trying to write a script that will update a table in sysbase. If it's failed then I want to rerun it one more time before exiting the script (fail due to bad value such as trying to put a string into datetime field or bad connection to the database) Well my code below will always return... (2 Replies)
Discussion started by: sirrtuan
2 Replies

8. Shell Programming and Scripting

Checking Exit Status

I hope one of you smart people out there can help me with what seems like a real simple questing but I can't quite figure out. In a script I am doing a cmp on two files. I am trying to check the exit status with an if statement but can't seem to figure out the syntax. If the exit status is 1 I... (4 Replies)
Discussion started by: PrimeRibAndADew
4 Replies

9. Shell Programming and Scripting

Problem with exit status

Hi, Consider the output of the following commands: case1) ------- # ifconfig -a | grep "UP" | grep uplink0:1 # echo $? Output is: 0 case2 ------ # ifconfig -a | grep "UP" | grep uplink0:1; echo $? Output is: 1 In case2 we got the exit code as 1, which is the actual exit code.... (1 Reply)
Discussion started by: diganta
1 Replies

10. Shell Programming and Scripting

exit status

i downloaded a text file from metalab.unc.edu called sh.txt and in this reference manual it refers to shell scripting exit status .. at the end of one of the examples that author gave an exit status of 127.. to what does a 127 exit status refer too and what is its purpose in the code. moxxx68 (1 Reply)
Discussion started by: moxxx68
1 Replies
Login or Register to Ask a Question