다른 매개변수를 사용하여 명령을 반복적으로 실행하는 방법은 무엇입니까?

다른 매개변수를 사용하여 명령을 반복적으로 실행하는 방법은 무엇입니까?

나는 우분투에 있습니다. 일부 매개변수(개행 문자로 구분)를 복사했고 다음을 사용할 수 있습니다.셰르이렇게 출력해보세요

$ xsel
arg1
arg2
arg3
arg4
...

이제 이러한 각 매개변수를 다른 명령에 사용하고 매개변수만큼 해당 명령을 실행하고 싶습니다.

그래서 나는 노력했다

$ xsel | mycommand "constantArgument" $1

그러나 이는 mycommand첫 번째 매개변수에 대해서만 수행됩니다. 각 매개변수에 대해 어떻게 해야 합니까?

답변1

당신은 단순히 사용할 수 있습니다xargs

xsel | xargs -n1 echo mycommand 

-n1mycommand에 대한 매개변수를 의미하지만 이는 단지 연습 실행이므로 실행될 내용을 보여줍니다. 실행하려면 삭제하세요.echo

상수 매개변수의 경우

xsel | xargs -I {} -n1 echo mycommand "constantArgument" {}

답변2

xsel | while read line; do mycommand "$line"; done

아니면 그런 것. xargs명령줄 인수를 조작하는 데 매우 강력한 명령인 를 사용할 수도 있습니다 .

답변3

약간의 사용자 정의를 위해:

printf "${CMD} %s ${ARG2}\n" `xsel` | sh -n

당신은 삭제할 수 있습니다-noexecute작동 방식을 이해한 후 표시하세요.

효과가 있으면 포기해도 됩니다sh정확히 이렇게 하세요:

. <<HERE /dev/stdin
    $(printf "${CMD} %s ${ARG2}\n" `xsel`)
HERE

또는 더 빠르게:

printf "${CMD} %s ${ARG2}\n" `xsel` | . /dev/stdin

어느 쪽이든 쉽고 완료될 것입니다.

관련 정보