0

我试图在卷曲后运行一个脚本,但是有一个选项——我得到了错误:/usr/bin/install: /usr/bin/install: cannot execute binary fil

curl https://raw.github.com/gist/2513225/a39232a94b25741ddb25e15755bddd5d71999b85/give-tourettes.sh | sh install

什么语法错误?只是一些周五的恶作剧......

4

1 回答 1

1

显然,curl发送到其标准输出的内容对于sh. 如果我不得不猜测,文件的第一行#!/bin/bash\r\r回车符 (CR) 的位置,系统找不到名称中包含 CR 的文件。(并且错误报告令人困惑,因为 CR 破坏了显示。)

也许您应该在将输出tr -d '\015'提交到 shell 之前通过管道传输它。

URL=https://raw.github.com/gist/2513225/a39232a94b25741ddb25e15755bddd5d71999b85/give-tourettes.sh
curl "$URL" |
tr -d '\015' |
sh install

请参阅:bash:将变量注入字符串会为相关问题添加额外的 \r。

针对这个假设sh install尝试install将当前目录中的文件作为 shell 脚本运行。那可能行不通。你的意思是把它传送到只是sh为了执行tourettes.sh?或者您是否希望install读取它的标准输入(如果是,为什么)?

“丢失回车”的建议是部分相关的;您不希望数据中有 CR,但它可能不是唯一的,甚至不是主要的问题。

于 2012-04-27T21:42:33.200 回答