![]() |
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| TAHI Test Suite 3.0.13 (IPv6 Conformance Test Tool branch) | iBot | Software Releases - RSS News | 0 | 04-06-2008 01:20 PM |
| Egrep cheat sheet anywhere? Looking for meaning of egrep -c | leelm | UNIX for Dummies Questions & Answers | 2 | 01-11-2008 03:37 PM |
| Keithley Introduces Linux-Based RF Parametric Test Systems - Test and Measurement.com | iBot | UNIX and Linux RSS News | 0 | 07-23-2007 11:30 AM |
| how can i check in csh if command found or not found ? | umen | Shell Programming and Scripting | 2 | 03-03-2007 07:38 PM |
| help with egrep | akDBA | UNIX for Dummies Questions & Answers | 9 | 08-02-2006 06:33 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Hi,
I want to return failure from my script if a string is NOT found in a file, but I can't work out how to negate my "if". At the moment I have : if (egrep -i 'search string' filetosearch); then echo "found" else return 2 fi How can I get rid of the echo bit and just test for "string not found" ? I already know I can use egrep -v to return lines not containing the string, but I actually just want to fail if the search string is not in the file anywhere. Thanks. |
|
||||
|
That's a Useless Use of Test $?. if already examines the exit code $? from the command it executes, so it's simpler and more straightforward to do Code:
if egrep -i "string" file_name
then
echo Found
else
return $?
fi
To negate an if, use an exclamation mark. Code:
if ! egrep -i "string" file_name
then
return $?
fi
There's another shorthand you should know about: the "or" connective. It executes the second command if the first command fails. Code:
egrep -i "string" file_name >/dev/null || return $? There is also && "and" which operates the other way around. (I added redirection to /dev/null as egrep is used simply for its return value here. You don't want it to actually print any matches. If your egrep has the -q option, you could use that too.) |
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|