bash脚本,调用函数作为条件测试

时间:2012-05-22 00:25:57

标签: bash scripting

有人可以告诉我为什么第7行(if语句)会产生错误:

test.sh: line 7: [: command_exists: unary operator expected

谢谢!

#!/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

1 个答案:

答案 0 :(得分:5)

if ! command_exists ruby; then

在Bash中,if执行命令并对其返回值起作用。 [碰巧是一个命令。