さまざまな方法でGitHubでリモートBashスクリプトを実行すると失敗します。 Windows 10が原因で発生する可能性があります。

さまざまな方法でGitHubでリモートBashスクリプトを実行すると失敗します。 Windows 10が原因で発生する可能性があります。

私はこれを持っていますリモートバッシュスクリプト私はGitHub(別のバージョン)でこの行を1行ずつ正常に実行しました。

テストするたびにすべての行をコピーして貼り付けるのはとても面白いので、次のようにリモートのBashスクリプトを実行してみました。円形を使用しますcurlが、さまざまな試みで失敗します。

bash <(curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh)

または

curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh | bash

約3秒後、両方とも次のエラーで完全に失敗します。

/dev/fd/63: 行 7: $'\r': コマンドが見つかりません。

私はすべてのキャリッジリターンを翻訳する必要があるかもしれないと推測して、次のことを試しました。

curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh | tr -d '\r' | bash

これによりスクリプトが部分的に実行されました。たとえば、、、、、およびその他の一部の操作は正常に機能しますが、および前のタブを持つapt-get install一部exportgit cloneファイルrm -rf ${repo}/.git/の処理は正しく処理されません。wgetunzip

GitHub GUIがコードの一部で先行スペースをタブからスペースに、またはその逆に変更できると思ったので、すべての先行スペースをタブに変更してみました。

curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh | sed "s/^ */\t/" | tr -d '\r' | bash

結果は以前と同じようです。

この4つの方法が失敗したので、またどのような方法が可能か疑問に思います。残念ながら、Googleで他の例を見つけることができませんでした。

おそらく私は通常、Windows 10で作業し、キャリッジリターンがすべてのファイルに追加されるため、これらの問題が発生する可能性があります。しかし、コード例では、「翻訳」が実行エラーを引き起こす理由が何であるかを尋ねることができます。

ベストアンサー1

を利用して解決できましたdos2unix

私はそれをインストールした:

sudo apt-get update
sudo apt-get install dos2unix

次に、を実行してcurlコンテンツをstdout。 stdoutで何かをパイプし、dos2unixそれを実行するためにパイプして変更しますbash

sudo curl -s https://raw.githubusercontent.com/benqzq/ulcwe/master/install.sh | dos2unix | bash

おすすめ記事