중복 없이 동일한 컬 패턴을 공유하는 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.
  • 작동하는 것은 무엇이든 사용하겠지만 유틸리티가 필요한 경우 데비안 저장소에서 사용 가능한 유틸리티를 추천해 주세요.

답변1

두 개 이상의 파일에 대해 사용할 수 있습니다유닉스 시퀀스:

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

관련 정보