xargs를 사용하여 명령 목록 작성 및 실행

xargs를 사용하여 명령 목록 작성 및 실행

xargs빌드 및 실행 사용 방법명령 목록예를 들면 다음과 같습니다.

#1
cmd1 <arg1> && cmd2 <arg1> && cmd3 <arg1>
#2
cmd1 <arg1> ; cmd2 <arg1>

답변1

각 입력 줄에 대해 하위 쉘을 시작합니다 xargs.

xargs -I {} sh -c 'cmd1 "$1" && cmd2 "$1" && cmd3 "$1"' sh {}

xargs -I {} sh -c 'cmd1 "$1"; cmd2 "$1"' sh {}

이 명령은 sh -c주어진 문자열을 쉘 스크립트로 실행합니다. sh -c매개변수는 스크립트 자체 뒤 $0$1스크립트 내부에 제공됩니다. 값은 $0일반적으로 쉘의 이름이어야 하며, 이것이 바로 sh이 매개변수로 전달하는 이유입니다(오류 메시지에서 사용됩니다).

또는,

xargs sh -c '
    for arg do
        cmd1 "$arg" && cmd2 "$arg" && cmd3 "$arg"
    done' sh

xargs sh -c '
    for arg do
        cmd1 "$arg"
        cmd2 "$arg"
    done' sh

이러한 변형은 가능한 한 많은 매개변수를 취한 다음 sh -c스크립트 내의 루프에서 해당 매개변수에 코드를 적용합니다.

항상 그렇듯이 를 사용할 때는 주어진 유틸리티(여기)에 제공된 인수를 적절하게 분리 xargs하도록 주의해야 합니다 .sh -c

관련 정보