Issue
I would like to test a Bash function's return value in an if statement like this:
if [[ func arg ]] ; then …
But I get error messages like: conditional binary operator expected.
What is the right way to do this?
Is it the following?
if [[ $(func arg) ]] ; then ...
Solution
If it was the exit code and not the result, you could just use
if func arg; then ...
If you cannot make the function return a proper exit code (with return N
), and you have to use string results, use Alex Gitelman's answer.
$ help if
:
if: if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]… [ else COMMANDS; ] fi
Execute commands based on conditional.
The
if COMMANDS
list is executed. If its exit status is zero, then thethen COMMANDS
list is executed. Otherwise, eachelif COMMANDS
list is executed in turn, and if its exit status is zero, the correspondingthen COMMANDS
list is executed and the if command completes. Otherwise, theelse COMMANDS
list is executed, if present. The exit status of the entire construct is the exit status of the last command executed, or zero if no condition tested true.Exit Status:
Returns the status of the last command executed.
Answered By - kay Answer Checked By - Timothy Miller (PHPFixing Admin)
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.