bash scripting, invoke function as a conditional test

bash, scripting

Solution

if ! command_exists ruby; then

In Bash, `if` executes a command and acts on its return value. `[` happens to be a command.

Problem

Can someone please tell me why line 7 (if statement) generates an error: ``` test.sh: line 7: [: command_exists: unary operator expected ``` thanks! ``` #!/usr/bin/env bash command_exists () { command -v "$1" &> /dev/null ; } if [ ! command_exists ruby ]; then # test.sh: line 7: [: command_exists: unary operator expected echo 'found ruby' else echo 'ruby not found' fi ```

Original source