Sponsored Content
Top Forums UNIX for Beginners Questions & Answers How to use exit status of two commands in if statement ? Post 303030123 by Sekhar419 on Wednesday 6th of February 2019 10:18:43 AM
Old 02-06-2019
How to use exit status of two commands in if statement ?

I am trying to write a shell script, which looks like

Code:
#!/usr/bin/env bash
#set -e 

RED="`tput setaf 1`"
GREEN="`tput setaf 2`"
BLUE="`tput setaf 4`"
NORM="`tput sgr0`"

pushd ${MY_GIT_TOP}/body/Ue/test >/dev/null #MY_GIT_TOP is set my by gitenv
make test_trinity_svp

pushd ${MY_GIT_TOP}/body/Ue/test/bait
csplit -q --prefix='raj-' --suffix-format='%06d' trinity_trace.log '/ Test: /' '{*}'
rm -f raj-000000
awk 'FNR==1 {print "mv", FILENAME, $4 ".tclog"; nextfile}' raj-?????? | sh
#rm -f some files which are not intresting

     if make test_trinity_svp && ! grep -q '[ERROR]:' *.tclog; then
        echo -e "${GREEN}SUCCESS IN TEST"
     else
        echo -e "\n${RED}FAILURE IN TEST due to presence of ERROR strings\n"
        echo "${NORM}"
        grep -F '[ERROR]:' *.tclog
        rm -f ${MY_GIT_TOP}/body/Ue/test/bait/*tclog
    fi
	popd > /dev/null

In the above code, i am trying to use the exit value of make command and the (not) grep command to success true or failure, but it is not working since Makefile is in different folder one level above the level i am currently on see pushd, i have done pushd twice neither do i want it to run once again.

what i wanted to do is to print success if the test (make command) passed and there are no matches of word '[ERROR]:' in the log generated by the test. how can i do that?

i tried something like
Code:
make test_trinity_svp
test=$?

if $test &&  ! grep -q '[ERROR]:' *.tclog; then

but it didn't work either
what should i have to do to achieve this ? I am using bash shell

Last edited by Sekhar419; 02-06-2019 at 11:56 AM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

ftp exit status.

Does ftp from unix have an exit status. In the sense after ftp is invoked and if the ftp fails during file transfer does it exit out with a status other than 0. What is do right now is invoke ftp and right it to a log and then grep for 'File Transferred Sucessfully'. Is this the only way to do it... (1 Reply)
Discussion started by: oracle8
1 Replies

2. 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

3. 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

4. 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

5. Shell Programming and Scripting

Check for exit status

Hi I have following code I want If whole code executes successfully then return true If found any error then print the error I tried if ; then But this checks only for the just upper line execution #!/bin/bash PATH1=/var/log/mysql PATH2=/home/ankur/log FILE1=mysql-bin.index... (4 Replies)
Discussion started by: kaushik02018
4 Replies

6. Shell Programming and Scripting

Exit status redirection

Hi, I'm having this simple code below, the file serverlist has a list of IPs one per line. When executed the while loop is executed only once, after that the program terminates. How should i redirect the exit status, so that the entire list of IP will get executed? #!/bin/bash exec <... (4 Replies)
Discussion started by: agent001
4 Replies

7. UNIX for Dummies Questions & Answers

Using 'diff' exit status in an if statement

is there a way to compare two files using diff (ex: diff 1.txt 2.txt) in an if statement? I read that the exit status of diff is 0 if the files contain the same content. 1 if they're different. So what I am attempting is basically: if ; then echo "they're the same" else ... (2 Replies)
Discussion started by: SoVi3t
2 Replies

8. 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

9. Shell Programming and Scripting

exit status from the script is always 0

Hi , I have a bash script , which does the network configuration. Messages from this script are dumped on console as well as stored in a log file . This script is invoked from a C code using system call . The script returns different exit code , to indicate different error cases. The... (1 Reply)
Discussion started by: abhirai
1 Replies

10. 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
while(n)						       Tcl Built-In Commands							  while(n)

__________________________________________________________________________________________________________________________________________________

NAME
while - Execute script repeatedly as long as a condition is met SYNOPSIS
while test body _________________________________________________________________ DESCRIPTION
The while command evaluates test as an expression (in the same way that expr evaluates its argument). The value of the expression must a proper boolean value; if it is a true value then body is executed by passing it to the Tcl interpreter. Once body has been executed then test is evaluated again, and the process repeats until eventually test evaluates to a false boolean value. Continue commands may be exe- cuted inside body to terminate the current iteration of the loop, and break commands may be executed inside body to cause immediate termi- nation of the while command. The while command always returns an empty string. Note: test should almost always be enclosed in braces. If not, variable substitutions will be made before the while command starts execut- ing, which means that variable changes made by the loop body will not be considered in the expression. This is likely to result in an infinite loop. If test is enclosed in braces, variable substitutions are delayed until the expression is evaluated (before each loop iter- ation), so changes in the variables will be visible. For an example, try the following script with and without the braces around $x<10: set x 0 while {$x<10} { puts "x is $x" incr x } SEE ALSO
break(n), continue(n), for(n), foreach(n) KEYWORDS
boolean value, loop, test, while Tcl while(n)
All times are GMT -4. The time now is 07:58 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy