0

カールした後にスクリプトを実行しようとしていますが、オプションがあります-エラーが発生します:/usr/bin/install: /usr/bin/install: cannot execute binary fil

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

どの構文が間違っていますか?ちょうどいくつかの金曜日のshenanigans...

4

1 に答える 1

1

どうやら、curlその標準出力に送信されるものは に受け入れられませんsh。推測するに、ファイルの最初の行は#!/bin/bash\rキャリッジ\rリターン (CR) であり、システムは名前に CR を含むファイルを見つけることができません。(そして、CR が表示を台無しにするため、エラー レポートは混乱を招きます。)

tr -d '\015'シェルに送信する前に、出力をパイプする必要があるかもしれません。

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

参照: bash: 変数を文字列に挿入すると、関連する問題のために余分な \r が追加されます。

この仮説に対して:現在のディレクトリにsh installあるファイルinstallをシェル スクリプトとして実行しようとします。それはうまくいかないかもしれません。shを実行するためだけにパイプするつもりでしたtourettes.shか? installまたは、その標準入力を読み取ることを期待していますか (もしそうなら、その理由)?

「改行をなくす」というアドバイスは部分的に関連しています。データに CR は必要ありませんが、ここでの唯一の問題、または主要な問題でさえない可能性があります。

于 2012-04-27T21:42:33.200 に答える