Corona688's grep -q solution is the best, but so you understand how things work I'll try and explain how one gets to it.
1. call grep, and throw away it's output and then examine return status:
Grep (and most unix commands) set exit status ($?) to zero on sucess (ie expresion matches), and non-zero for failure (expression not found or other errors, eg could not open file)
2. Grep supports a -q option (be quiet and just set exit status), so we can simplify to:
3. if runs command and executes block when command result is zero ( [ is just a shortcut for the test command). So we can use if to directly test the grep result:
This User Gave Thanks to Chubler_XL For This Post:
I keep getting an error at line 21, it doesn't like my if statement. Previously I have tried using (( )), but still get errors. The current error is that server_busy is not found. This is the script:
#! /bin/ksh
server_busy="na"
for file in $1 $2 $3 $4 $5 $6
do
echo " ${file}\t\c"
... (1 Reply)
I need an IF statement that will compare the contents of the variable CX with the actual string "CP". ie. If the contents of $CX are NOT equal to the actual string "CP" then blah blah blah.
I have tried a number of things including the following.......
if ]; then
if ]; then
if ];... (2 Replies)
hi all. i just have a very small problem. i have a menu of 7 choices. i want an if statement so that if the user chooses anything except inside the 1 to 7 range, i can handle the error for it.
i tried this:
if ]
then
.......
fi
(but it dont work)
...any suggestions?
... (4 Replies)
The problem I am having here is that only the 1st option is executed, no matter if I pick yes or no. What am I doing wrong? How can I get this working right without resorting to a case statement?
echo "This is the max size your lvol can be:"
echo $MAXSIZE
echo
echo Do you want to max out... (2 Replies)
Hi I have a bash script like this
if
then
echo "A"
else
echo "B"
fi
$1 is something like 02350 (there is always a trailing '0')
and I would like to have an if based on the value of the digits after the 0.
Can anybody help?
Thanks,
Sarah (3 Replies)
Could someone help me out with this if statement? It's supposed to get a person's website, but it isn't working when I run it.
website=""
echo "Would you like to enter a website? Enter Yes/No"
read choice
if
then
while
do
echo "Please enter a website:";
read... (4 Replies)
Hi,
Here is a big head scratcher for me....
I'm creating a loop with while reading lines from a file called example.txt:
#!/bin/sh
while read line
do
some command > another file ----- output to another file
done < example.txt
I would like that another file to be unique for every... (5 Replies)
echo "Enter the variable: " "
read var1
echo " "
for i in ib eb atm
do
if ; then
mv properties environment.properties
break
else
echo "No changes to $var1 "
fi
done
When i run and enter the eb it's not working.Any suggestions please.. (7 Replies)
Hi All,
I am writing an if statement to check multiple conditions, but when I try to execute the script it is breaking at the point of if statement by showing the issue below.
Code I am using is given below.
if -a ]
then
....
else
...
fi
I am not understanding... (3 Replies)
Discussion started by: ginrkf
3 Replies
LEARN ABOUT SUSE
mail::mbox::messageparser::grep
Mail::Mbox::MessageParser::Grep(3) User Contributed Perl Documentation Mail::Mbox::MessageParser::Grep(3)NAME
Mail::Mbox::MessageParser::Grep - A GNU grep-based mbox folder reader
SYNOPSIS
#!/usr/bin/perl
use Mail::Mbox::MessageParser;
my $filename = 'mail/saved-mail';
my $filehandle = new FileHandle($filename);
my $folder_reader =
new Mail::Mbox::MessageParser( {
'file_name' => $filename,
'file_handle' => $filehandle,
'enable_grep' => 1,
} );
die $folder_reader unless ref $folder_reader;
# Any newlines or such before the start of the first email
my $prologue = $folder_reader->prologue;
print $prologue;
# This is the main loop. It's executed once for each email
while(!$folder_reader->end_of_file());
{
my $email = $folder_reader->read_next_email();
print $email;
}
DESCRIPTION
This module implements a GNU grep-based mbox folder reader. It can only be used when GNU grep is installed on the system. Users must not
instantiate this class directly--use Mail::Mbox::MessageParser instead. The base MessageParser module will automatically manage the use of
grep and non-grep implementations.
METHODS AND FUNCTIONS
The following methods and functions are specific to the Mail::Mbox::MessageParser::Grep package. For additional inherited ones, see the
Mail::Mbox::MessageParser documentation.
$ref = new( { 'file_name' => <mailbox file name>, 'file_handle' => <mailbox file handle> });
<file_name> - The full filename of the mailbox
<file_handle> - An opened file handle for the mailbox
The constructor for the class takes two parameters. The file_name parameter is the filename of the mailbox. The file_handle argument is
the opened file handle to the mailbox.
Returns a reference to a Mail::Mbox::MessageParser object, or a string describing the error.
BUGS
No known bugs.
Contact david@coppit.org for bug reports and suggestions.
AUTHOR
David Coppit <david@coppit.org>.
LICENSE
This software is distributed under the terms of the GPL. See the file "LICENSE" for more information.
HISTORY
This code was originally part of the grepmail distribution. See http://grepmail.sf.net/ for previous versions of grepmail which included
early versions of this code.
SEE ALSO
Mail::Mbox::MessageParser
perl v5.12.1 2009-08-09 Mail::Mbox::MessageParser::Grep(3)