How do I use $? in a script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How do I use $? in a script
# 1  
Old 05-20-2008
How do I use $? in a script

Hi,
I want to grep for a certain string in a file and depending on whether I find the string or not (depending on value of $?) I want to run an operation (if statement). How do I do this?
# 2  
Old 05-20-2008
Quote:
Originally Posted by kskkarthik
Hi,
I want to grep for a certain string in a file and depending on whether I find the string or not (depending on value of $?) I want to run an operation (if statement). How do I do this?
$? returns the status of the previous command if it is successfull then 0 else some other return code.

Code:
grep "pattern" "filename"
if [[ $? = 0 ]]; then
echo "something" 
else
--
fi

# 3  
Old 05-20-2008
Code:
grep "String to find" filetosearch >/dev/null

if [ $? -eq "0" ]
then
  statement when string found
else
  statemnet when string not found
fi

# 4  
Old 05-20-2008
A simpler way would be to use the || operator.
Code:
grep 'regex' buf && echo ':-)' || echo ':-('

OR
Code:
if grep -q 'regex' buf
then
    # statements
else
   # statements
fi


Last edited by agn; 05-20-2008 at 02:37 AM..
# 5  
Old 05-27-2008
Thanks that works

Thanks it works Smilie
# 6  
Old 05-27-2008
I am trying something very similar but want to take the input from another text file, looping through it line by line. and then have some thing like

if [ $? -eq "0" ]
then
echo $line
else
echo $line>somefile.txt
fi


that way everything it finds would be output to the screen and everything that it doesn't could go to some text file.

so far i have this script, but it doesn't work?

#!/bin/bash

if [ ! $2 ]; then
echo missing arguments\(s\)
echo arch_data_comparison.sh \<archive_text\> \<database_text\>
exit 1
fi


ARCHIVE=$1
DATABASE=$2

exec 3<&0
exec 0<$DATABASE
while read line
do
fgrep $line $ARCHIVE
#if [ $? -eq 0 ] ; then echo $line ; else echo $line not found ; fi
done

exec 0<&3
exit 0
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies
Login or Register to Ask a Question