나는 우분투에 있습니다. 일부 매개변수(개행 문자로 구분)를 복사했고 다음을 사용할 수 있습니다.셰르이렇게 출력해보세요
$ xsel
arg1
arg2
arg3
arg4
...
이제 이러한 각 매개변수를 다른 명령에 사용하고 매개변수만큼 해당 명령을 실행하고 싶습니다.
그래서 나는 노력했다
$ xsel | mycommand "constantArgument" $1
그러나 이는 mycommand
첫 번째 매개변수에 대해서만 수행됩니다. 각 매개변수에 대해 어떻게 해야 합니까?
답변1
당신은 단순히 사용할 수 있습니다xargs
xsel | xargs -n1 echo mycommand
-n1
mycommand에 대한 매개변수를 의미하지만 이는 단지 연습 실행이므로 실행될 내용을 보여줍니다. 실행하려면 삭제하세요.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
어느 쪽이든 쉽고 완료될 것입니다.