我使用 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
为同一远程目录中的不同文件重用模式(和管道输出)的特定任务的线索。
非常欢迎您分享一个例子。
更新
- 此类操作可能多于或少于六个
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
解释:
- 使用 的输出
seq
获得最多 6 的计数(因为问题列出了 6 个curl
操作)。 - 将输出读入变量
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)