Hi all, I'm confused about the proper syntax for multi-conditional if then statements. I'm trying to set limitations on info input on the command line.. i.e.
if ] ;then
$x=$vr1
else
print "You have entered an invalid option."
Can someone please clue me in on what is wrong with my syntax;... (3 Replies)
Guys, Im trying to have a script that evaluates multiple conditions :
test.sh:
if
then
echo "host $1"
else
if
then
echo "host $1"
else
echo $1 not valid
exit 1
fi
when I do
./test.sh brazil1
I get: (4 Replies)
Hi All,
I am new to shell scripting.
Can any one say what is wrong in this if statement, that uses multiple conditions
if
then
***************
else
if ( -z $pcs && "$night_time_calc" > "$night_time" )
then
********************************
... (4 Replies)
how can i specify more than 1 consition in the following AWK statament??
i.e. if $2 is ABCD and $3 is MNOP and $4 is KLPM
similarly for OR
#!/bin/ksh
awk -F '' ' $2 == "ABCD" { print $2, $3;}' file.xml (2 Replies)
Hi,
When i use the below code snippet in my shell script OFC_10.sh:
if
then
echo "Success"
exit 2
elif
then
echo "Failure"
exit 6
I get the error message:
./OFC_10.sh: line 41: '
./OFC_10.sh: line 45: '
Line 41 is the line where If loop starts and line 45 is... (2 Replies)
Deal Experts
I am working on a script to find a date which is 7 days older and follwoing is my approach
#!/bin/sh
Yr=`date +"%Y"`
Mn=`date +"%m"`
Md=28
Da=`date +"%d"`
echo $Yr
echo $Mn
echo $Da
var1=$Yr$Mn$Da
echo "before" $var1
if expr $Da > 7
then Da=`expr $Da - 7`... (3 Replies)
Hello Unix-Forums!
It has been a long time since my last post, but finally I've got a new question:
I know in case you can use multiple patterns by
case $var in
a|b|c|ab)
and so on.
But how would I place an OR between
if ]
then
...
if ]
then
...
I want to execute the "..." if... (3 Replies)
Fellas,
Am new to unix os/ and here the situation , I am trying to write multiple condition statement inside if but it throws me a error
here is my piece of code ,
if ] && ] && ]
then
commands
fi
error : line 15 : `
can someone please advise me how to fix it
Please use... (7 Replies)
Hi Gurus,
Is there a way we can set a logic for this problem ?
The input file looks like below;
1 15 17
2 8 12
3 18 24
4 21 23
5 2 4
6 11 25
So, I would like to print for any row of the input file where the range of value between $2 to $3 lies within the min and max values of Min=10... (2 Replies)
I am analyzing one of the scripts written by another person.script is having multiple if conditions and everything are nested.The code is not formatted properly.Is there any way to identify in Unix to identify begin and end of a particular if block? (6 Replies)
Discussion started by: vamsi.valiveti
6 Replies
LEARN ABOUT OSX
context::preserve
Context::Preserve(3) User Contributed Perl Documentation Context::Preserve(3)NAME
Context::Preserve - run code after a subroutine call, preserving the context the subroutine would have seen if it were the last statement
in the caller
SYNOPSIS
Have you ever written this?
my ($result, @result);
# run a sub in the correct context
if(!defined wantarray){
some::code();
}
elsif(wantarray){
@result = some::code();
}
else {
$result = some::code();
}
# do something after some::code
$_ += 42 for (@result, $result);
# finally return the correct value
if(!defined wantarray){
return;
}
elsif(wantarray){
return @result;
}
else {
return $result;
}
Now you can just write this instead:
use Context::Preserve;
return preserve_context { some::code() }
after => sub { $_ += 42 for @_ };
DESCRIPTION
Sometimes you need to call a function, get the results, act on the results, then return the result of the function. This is painful
because of contexts; the original function can behave different if it's called in void, scalar, or list context. You can ignore the
various cases and just pick one, but that's fragile. To do things right, you need to see which case you're being called in, and then call
the function in that context. This results in 3 code paths, which is a pain to type in (and maintain).
This module automates the process. You provide a coderef that is the "original function", and another coderef to run after the original
runs. You can modify the return value (aliased to @_) here, and do whatever else you need to do. "wantarray" is correct inside both
coderefs; in "after", though, the return value is ignored and the value "wantarray" returns is related to the context that the original
function was called in.
EXPORT
"preserve_context"
FUNCTIONS
preserve_context { original } [after|replace] => sub { after }
Invokes "original" in the same context as "preserve_context" was called in, save the results, runs "after" in the same context, then
returns the result of "original" (or "after" if "replace" is used).
If the second argument is "after", then you can modify @_ to affect the return value. "after"'s return value is ignored.
If the second argument is "replace", then modifying @_ doesn't do anything. The return value of "after" is returned from
"preserve_context" instead.
Run "preserve_context" like this:
sub whatever {
...
return preserve_context { orginal_function() }
after => sub { modify @_ };
}
or
sub whatever {
...
return preserve_context { orginal_function() }
replace => sub { return @new_return };
}
Note that there's no comma between the first block and the "after =>" part. This is how perl parses functions with the "(&@)" prototype.
The alternative is to say:
preserve_context(sub { original }, after => sub { after });
You can pick the one you like, but I think the first version is much prettier.
AUTHOR AND COPYRIGHT
Jonathan Rockway "<jrockway@cpan.org>"
Copyright (c) 2008 Infinity Interactive. You may redistribute this module under the same terms as Perl itself.
perl v5.16.2 2008-01-15 Context::Preserve(3)