重複せずに同じカールパターンを共有する2つ以上のリモートスクリプトを実行する

重複せずに同じカールパターンを共有する2つ以上のリモートスクリプトを実行する

私はUbuntu 16.04を使用しており、同じディレクトリ(GitHubリポジトリ)でリモートスクリプトリストを実行しています。

curl -s https://raw.githubusercontent.com/${user}/${repo}/master/1.sh | tr -d '\r' | bash
curl -s https://raw.githubusercontent.com/${user}/${repo}/master/2.sh | tr -d '\r' | bash
curl -s https://raw.githubusercontent.com/${user}/${repo}/master/3.sh | tr -d '\r' | bash
curl -s https://raw.githubusercontent.com/${user}/${repo}/master/4.sh | tr -d '\r' | bash
curl -s https://raw.githubusercontent.com/${user}/${repo}/master/5.sh | tr -d '\r' | bash
curl -s https://raw.githubusercontent.com/${user}/${repo}/master/6.sh | tr -d '\r' | bash

整頓解雇の恐怖にどう対処するのか?

ループについて考えましたが、forどのように作成するのかわかりません。これまでに見たループのどれも、同じリモートディレクトリにある複数のファイルに対して特定のジョブのパターン(およびパイプ出力)を再利用する方法についての手がかりをfor提供していません。curl

例を共有してください。

修正する

  • そのような操作は6つより多いか少ないかもしれませんcurl
  • 機能するものは何でも使用しますが、ユーティリティが必要な場合は、Debianリポジトリで利用可能なユーティリティをお勧めします。

答え1

複数のファイルに使用できますUnixシーケンス:

for var in $(seq 6)
   do 
       curl -s https://raw.githubusercontent.com/${user}/${repo}/master/$var.sh | tr -d '\r' | bash
   done

説明する:

  1. 使用される出力はseq最大6つまで計算されます(質問には6つのcurlタスクがリストされているため)。
  2. 出力を変数として読み込み、varコマンドに使用しますcurl

答え2

GNUは最も速いものの一つです。parallel:

parallel -j0 -k "curl -s https://raw.githubusercontent.com/${user}/${repo}/master/{1}.sh \
                 | tr -d '\r' | bash" ::: {1..6}

動的変数でキー番号を指定することもできます。

n=7
parallel -j0 -k "curl -s https://raw.githubusercontent.com/${user}/${repo}/master/{1}.sh \
                 | tr -d '\r' | bash" ::: $(seq $n)

https://www.gnu.org/software/parallel/man.html

関連情報