我正在尝试在卷曲后运行脚本,但有一个选项 - 我收到错误:/usr/bin/install: /usr/bin/install: cannot execute binary fil
curl https://raw.github.com/gist/2513225/a39232a94b25741ddb25e15755bddd5d71999b85/give-tourettes.sh | sh install
什么语法错了?只是一些星期五的诡计...
答案 0 :(得分:1)
显然,curl
无法接受sh
向其标准输出发送的内容。如果我不得不猜测,文件的第一行是#!/bin/bash\r
,其中\r
是回车符(CR),系统找不到名称中带有CR的文件。 (并且错误报告令人困惑,因为CR破坏了显示。)
也许你应该在将输出提交给shell之前通过tr -d '\015'
管道输出。
URL=https://raw.github.com/gist/2513225/a39232a94b25741ddb25e15755bddd5d71999b85/give-tourettes.sh
curl "$URL" |
tr -d '\015' |
sh install
有关相关问题,请参阅:bash: injecting variable into string adds extra \r。
针对此假设:sh install
尝试将当前目录中的文件install
作为shell脚本运行。这可能行不通。您的意思是将其导管到sh
以执行tourettes.sh
吗?或者您期望install
读取其标准输入(如果是,为什么)?
“失去回车”的建议部分相关;你不希望CR在数据中,但它可能不是唯一的,甚至是主要的问题。