2013-09-08 4 views

답변

2

일부 실험 후 문제가 해결되지 않습니다

ls | xargs -t -I {} {}/MyScript.sh param1 param2 

을하지만 이것은 수행합니다

ls | xargs -t -I {} sh {}/MyScript.sh param1 param2 
(가) {} 첫 번째 경우

xargs [...] [command [initial-arguments]] 

-I replace-str 
    Replace occurrences of replace-str in the initial-arguments 
    with names read from standard input. 

그것은의 일부입니다, 왜 그 사람 페이지의

닫기를 읽기 밝혀 10이 아니라 initial-arguments이 아니므로 교체되지 않습니다. 따라서 {}가 항상 명령이 아닌 인수의 일부가되도록 작업을 정렬해야합니다. 귀하의 경우에는 MyScript을 직접 호출하는 대신 sh {}/MyScript.sh을 사용하여 쉽게 수행 할 수 있습니다.

(참고 : 여기 떠들썩한 파티를 사용하고, 어디 {} 그 안에 아무것도 인용 할 필요가 없습니다 다른 포탄을 인용해야 할 수도 있습니다.).

+0

ToxicFrog, 정말 감사합니다! – itech

+0

예 방법은 작동하지만 {} 대신 {}을 사용해야합니다. – itech

+0

아래 명령이 현재 작동합니다. ls | xargs -t -I '{}'ksh '{}'/ MyScript.ksh param1 param2 – itech

관련 문제