尝试安装张量流服务时获得"bash: syntax error near unexpected token `|'"



我试图通过以下官方文档安装TensorFlow Serving:

我将这个命令复制并粘贴到我的Ubuntu 18.04终端:

echo "deb [arch=amd64] <a href="http://storage.googleapis.com/tensorflow-serving-apt">http://storage.googleapis.com/tensorflow-serving-apt</a> stable tensorflow-model-server tensorflow-model-server-universal" | sudo tee /etc/apt/sources.list.d/tensorflow-serving.list && 
curl <a href="https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg">https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg</a> | sudo apt-key add -

但我得到了这个错误:

bash: syntax error near unexpected token `|'

为什么我会出现此错误?

问题:您复制了<a href="">之类的html标记,而这些标记不应该是命令的一部分。

快速修复

从命令中删除html标签:

echo "deb [arch=amd64] http://storage.googleapis.com/tensorflow-serving-apt stable tensorflow-model-server tensorflow-model-server-universal" | sudo tee /etc/apt/sources.list.d/tensorflow-serving.list && 
curl https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg | sudo apt-key add -

详细信息

方括号用于bash中的重定向
cmd < file读取file并将其内容传递给cmd
cmd > filecmd的输出写入file

在第一个命令中,你很幸运:所有<>都用"引用,因此该命令执行"正常"(它没有达到你的预期,但至少没有失败(。

第二个命令执行一些操作,并以> |结束。您可以使用echo > | cat重现此错误。Bash期望文件名在>之后,但只找到另一个命令(| ...(的开头。

相关内容

最新更新