私はこれを持っていますリモートバッシュスクリプト私は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
一部export
のgit clone
ファイルrm -rf ${repo}/.git/
の処理は正しく処理されません。wget
unzip
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