우분투에 있습니다. 몇 가지 인수 (줄 바꿈으로 구분)를 복사 했으며 xsel 을 사용 하여 다음과 같이 인쇄 할 수 있습니다
$ xsel
arg1
arg2
arg3
arg4
...
이제 다른 인수에 이러한 인수를 각각 사용하고 인수가있는 횟수만큼 해당 명령을 실행하려고합니다.
그래서 나는 시도했다
$ xsel | mycommand "constantArgument" $1
그러나 이것은 mycommand
첫 번째 인수에 대해서만 실행 되었습니다. 모든 인수에 대해 어떻게 실행할 수 있습니까?
답변
당신은 단순히 사용할 수 있습니다 xargs
xsel | xargs -n1 echo mycommand
-n1
mycommand에 대한 하나의 arg를 의미하지만, 단지 드라이 런입니다. echo
상수 인수
xsel | xargs -I {} -n1 echo mycommand "constantArgument" {}
답변
xsel | while read line; do mycommand "$line"; done
또는 비슷한 것. xargs
명령 줄 인수 조작을위한 매우 강력한 명령 인을 사용할 수도 있습니다 .
답변
약간의 커스터마이즈 가능성 :
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
어느 쪽이든 쉽게 할 수 있습니다.