How to make an `if cond success failure` function in bash scriptscript to send e-mail for success or failurebash script - loop functionCheck command success in bashCombining two variables mangles them on WindowsHow to execute different commands based on success / failure of previous command in shell script?Set comparator with variables within a variable, then have shell expand those variables each time it's echo'dHow to make a customized function in bash fileForward-slash-enclosed Bash script function name(?)Conditional emoji on terminal success and failureTrying to understand the syntax for echo $(($1 * 2))
How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)
How do we improve the relationship with a client software team that performs poorly and is becoming less collaborative?
Is there really no realistic way for a skeleton monster to move around without magic?
Patience, young "Padovan"
Extreme, but not acceptable situation and I can't start the work tomorrow morning
Can a German sentence have two subjects?
What do you call a Matrix-like slowdown and camera movement effect?
What is the command to reset a PC without deleting any files
Banach space and Hilbert space topology
Chess with symmetric move-square
Why did the Germans forbid the possession of pet pigeons in Rostov-on-Don in 1941?
I’m planning on buying a laser printer but concerned about the life cycle of toner in the machine
Circuitry of TV splitters
"which" command doesn't work / path of Safari?
Simulate Bitwise Cyclic Tag
How to calculate implied correlation via observed market price (Margrabe option)
If Manufacturer spice model and Datasheet give different values which should I use?
What are these boxed doors outside store fronts in New York?
Example of a relative pronoun
A newer friend of my brother's gave him a load of baseball cards that are supposedly extremely valuable. Is this a scam?
Why don't electron-positron collisions release infinite energy?
Why is this code 6.5x slower with optimizations enabled?
How does one intimidate enemies without having the capacity for violence?
Download, install and reboot computer at night if needed
How to make an `if cond success failure` function in bash script
script to send e-mail for success or failurebash script - loop functionCheck command success in bashCombining two variables mangles them on WindowsHow to execute different commands based on success / failure of previous command in shell script?Set comparator with variables within a variable, then have shell expand those variables each time it's echo'dHow to make a customized function in bash fileForward-slash-enclosed Bash script function name(?)Conditional emoji on terminal success and failureTrying to understand the syntax for echo $(($1 * 2))
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I am getting close with this:
myif()
if ([ $1 ]) then
shift
$*
true
else
shift
shift
$*
false
fi
The main part is that if ([ $1 ]) then
is not correct. I would like to be able to do these 3 things:
# boolean literals, probably passed in as the output to variables.
myif true successhandler failurehandler
myif false successhandler failurehandler
# a function to be evaluated
myif checkcondition successhandler failurehandler
checkcondition()
true
# or:
# false, to test
The following works to check a file:
file_exists()
if ([ -e $1 ]) then
shift
$*
true
else
shift
shift
$*
false
fi
Wondering how to get the first example working where it handles those 3 cases. I've also tried using eval
and doing this:
myif()
if ([ "$*" ]) then
shift
$*
true
else
shift
shift
$*
false
fi
But no go.
bash shell-script
add a comment |
I am getting close with this:
myif()
if ([ $1 ]) then
shift
$*
true
else
shift
shift
$*
false
fi
The main part is that if ([ $1 ]) then
is not correct. I would like to be able to do these 3 things:
# boolean literals, probably passed in as the output to variables.
myif true successhandler failurehandler
myif false successhandler failurehandler
# a function to be evaluated
myif checkcondition successhandler failurehandler
checkcondition()
true
# or:
# false, to test
The following works to check a file:
file_exists()
if ([ -e $1 ]) then
shift
$*
true
else
shift
shift
$*
false
fi
Wondering how to get the first example working where it handles those 3 cases. I've also tried using eval
and doing this:
myif()
if ([ "$*" ]) then
shift
$*
true
else
shift
shift
$*
false
fi
But no go.
bash shell-script
You can use que expression[ cond ] && success || failure
– Juan
Mar 27 at 16:56
add a comment |
I am getting close with this:
myif()
if ([ $1 ]) then
shift
$*
true
else
shift
shift
$*
false
fi
The main part is that if ([ $1 ]) then
is not correct. I would like to be able to do these 3 things:
# boolean literals, probably passed in as the output to variables.
myif true successhandler failurehandler
myif false successhandler failurehandler
# a function to be evaluated
myif checkcondition successhandler failurehandler
checkcondition()
true
# or:
# false, to test
The following works to check a file:
file_exists()
if ([ -e $1 ]) then
shift
$*
true
else
shift
shift
$*
false
fi
Wondering how to get the first example working where it handles those 3 cases. I've also tried using eval
and doing this:
myif()
if ([ "$*" ]) then
shift
$*
true
else
shift
shift
$*
false
fi
But no go.
bash shell-script
I am getting close with this:
myif()
if ([ $1 ]) then
shift
$*
true
else
shift
shift
$*
false
fi
The main part is that if ([ $1 ]) then
is not correct. I would like to be able to do these 3 things:
# boolean literals, probably passed in as the output to variables.
myif true successhandler failurehandler
myif false successhandler failurehandler
# a function to be evaluated
myif checkcondition successhandler failurehandler
checkcondition()
true
# or:
# false, to test
The following works to check a file:
file_exists()
if ([ -e $1 ]) then
shift
$*
true
else
shift
shift
$*
false
fi
Wondering how to get the first example working where it handles those 3 cases. I've also tried using eval
and doing this:
myif()
if ([ "$*" ]) then
shift
$*
true
else
shift
shift
$*
false
fi
But no go.
bash shell-script
bash shell-script
asked Mar 27 at 15:45
Lance PollardLance Pollard
1717
1717
You can use que expression[ cond ] && success || failure
– Juan
Mar 27 at 16:56
add a comment |
You can use que expression[ cond ] && success || failure
– Juan
Mar 27 at 16:56
You can use que expression
[ cond ] && success || failure
– Juan
Mar 27 at 16:56
You can use que expression
[ cond ] && success || failure
– Juan
Mar 27 at 16:56
add a comment |
1 Answer
1
active
oldest
votes
It looks like you want to execute $1
, and based on its success or failure, execute $2
or $3
. Here's one way to do it:
successhandler()
echo GREAT SUCCESS
failurehandler()
echo sad failure
checkcondition()
if (( RANDOM < 15000 ))
then
true
else
false
fi
myif()
# disable filename generation (in case globs are present)
set -f
if $1 > /dev/null 2>&1
then
$2
true
else
$3
false
fi
Here I've created arbitrary versions of successhandler, failurehandler, and checkcondition to demonstrate the behavior.
Here are some sample runs:
$ myif true successhandler failurehandler
GREAT SUCCESS
$ myif false successhandler failurehandler
sad failure
$ myif 'test -f /etc/hosts' successhandler failurehandler
GREAT SUCCESS
$ myif 'test -f /etc/hosts/not/there' successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
sad failure
Inside myif()
, I specifically drop stdout and stderr to /dev/null
; adjust that as you prefer.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f509019%2fhow-to-make-an-if-cond-success-failure-function-in-bash-script%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
It looks like you want to execute $1
, and based on its success or failure, execute $2
or $3
. Here's one way to do it:
successhandler()
echo GREAT SUCCESS
failurehandler()
echo sad failure
checkcondition()
if (( RANDOM < 15000 ))
then
true
else
false
fi
myif()
# disable filename generation (in case globs are present)
set -f
if $1 > /dev/null 2>&1
then
$2
true
else
$3
false
fi
Here I've created arbitrary versions of successhandler, failurehandler, and checkcondition to demonstrate the behavior.
Here are some sample runs:
$ myif true successhandler failurehandler
GREAT SUCCESS
$ myif false successhandler failurehandler
sad failure
$ myif 'test -f /etc/hosts' successhandler failurehandler
GREAT SUCCESS
$ myif 'test -f /etc/hosts/not/there' successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
sad failure
Inside myif()
, I specifically drop stdout and stderr to /dev/null
; adjust that as you prefer.
add a comment |
It looks like you want to execute $1
, and based on its success or failure, execute $2
or $3
. Here's one way to do it:
successhandler()
echo GREAT SUCCESS
failurehandler()
echo sad failure
checkcondition()
if (( RANDOM < 15000 ))
then
true
else
false
fi
myif()
# disable filename generation (in case globs are present)
set -f
if $1 > /dev/null 2>&1
then
$2
true
else
$3
false
fi
Here I've created arbitrary versions of successhandler, failurehandler, and checkcondition to demonstrate the behavior.
Here are some sample runs:
$ myif true successhandler failurehandler
GREAT SUCCESS
$ myif false successhandler failurehandler
sad failure
$ myif 'test -f /etc/hosts' successhandler failurehandler
GREAT SUCCESS
$ myif 'test -f /etc/hosts/not/there' successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
sad failure
Inside myif()
, I specifically drop stdout and stderr to /dev/null
; adjust that as you prefer.
add a comment |
It looks like you want to execute $1
, and based on its success or failure, execute $2
or $3
. Here's one way to do it:
successhandler()
echo GREAT SUCCESS
failurehandler()
echo sad failure
checkcondition()
if (( RANDOM < 15000 ))
then
true
else
false
fi
myif()
# disable filename generation (in case globs are present)
set -f
if $1 > /dev/null 2>&1
then
$2
true
else
$3
false
fi
Here I've created arbitrary versions of successhandler, failurehandler, and checkcondition to demonstrate the behavior.
Here are some sample runs:
$ myif true successhandler failurehandler
GREAT SUCCESS
$ myif false successhandler failurehandler
sad failure
$ myif 'test -f /etc/hosts' successhandler failurehandler
GREAT SUCCESS
$ myif 'test -f /etc/hosts/not/there' successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
sad failure
Inside myif()
, I specifically drop stdout and stderr to /dev/null
; adjust that as you prefer.
It looks like you want to execute $1
, and based on its success or failure, execute $2
or $3
. Here's one way to do it:
successhandler()
echo GREAT SUCCESS
failurehandler()
echo sad failure
checkcondition()
if (( RANDOM < 15000 ))
then
true
else
false
fi
myif()
# disable filename generation (in case globs are present)
set -f
if $1 > /dev/null 2>&1
then
$2
true
else
$3
false
fi
Here I've created arbitrary versions of successhandler, failurehandler, and checkcondition to demonstrate the behavior.
Here are some sample runs:
$ myif true successhandler failurehandler
GREAT SUCCESS
$ myif false successhandler failurehandler
sad failure
$ myif 'test -f /etc/hosts' successhandler failurehandler
GREAT SUCCESS
$ myif 'test -f /etc/hosts/not/there' successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
GREAT SUCCESS
$ myif checkcondition successhandler failurehandler
sad failure
$ myif checkcondition successhandler failurehandler
sad failure
Inside myif()
, I specifically drop stdout and stderr to /dev/null
; adjust that as you prefer.
answered Mar 27 at 16:47
Jeff Schaller♦Jeff Schaller
44.7k1163145
44.7k1163145
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f509019%2fhow-to-make-an-if-cond-success-failure-function-in-bash-script%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
-bash, shell-script
You can use que expression
[ cond ] && success || failure
– Juan
Mar 27 at 16:56