我试图通过以下官方文档安装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 > file
将cmd
的输出写入file
。
在第一个命令中,你很幸运:所有<
和>
都用"
引用,因此该命令执行"正常"(它没有达到你的预期,但至少没有失败(。
第二个命令执行一些操作,并以> |
结束。您可以使用echo > | cat
重现此错误。Bash期望文件名在>
之后,但只找到另一个命令(| ...
(的开头。