在 Ubuntu 上安装 Bazel 时出错

Error installing Bazel on Ubuntu

我正在尝试安装 Bazel on my EC2 Ubuntu machine. I download the .sh file with wget from the latest Bazel release,然后我 运行 使用 sh ./bazel-0.2.1-installer-linux-x86_64.sh 安装它。我收到以下错误:

./bazel-0.2.1-installer-linux-x86_64.sh: 106: ./bazel-0.2.1-installer-linux-x86_64.sh: Syntax error: "(" unexpected

查看 .sh 文件中的第 106 行,我看到以下行:function usage() {。不确定为什么该行中的 ( 会成为问题。

我试过使用其他安装程序(bazel-0.2.1-installer-darwin-x86_64.shbazel-0.2.1-jdk7-installer-darwin-x86_64.shbazel-0.2.1-jdk7-installer-linux-x86_64.sh),但他们都在同一行上遇到了同样的问题。

函数的正常语法是:

function usage { … }
usage() { … }

不是他们,不是组合吗?

然而,shell functions 上的 Bash 手册大致指出:

 function usage [()] { … }

手册中的确切表示法:

functionname[()]compound-command[ redirections]

也许使用 bash 而不是 sh 会奏效?

bash ./bazel-0.2.1-install-linux-x86_64.sh

评论表明这确实有效。

Bazel 安装程序脚本已更新为使用语法 usage() { (w/o "function")