스크립트로 가져올 발견된 파일을 반복적으로 전달하는 방법

스크립트로 가져올 발견된 파일을 반복적으로 전달하는 방법

다음과 같이 .done으로 끝나지 않는 파일을 찾았습니다.

find -type f -not -name \*.done -execdir myscript {} \;

이제 제가 하고 싶은 일은 다음과 같습니다.

- 발견된 각 파일을 myscript에 전달합니다.

- source 명령을 사용하여 myscript의 각 파일을 가져옵니다.

- 각 소스 파일에 대해 myscript를 실행합니다.

참고: 발견된 각 파일에 대해 한 번씩 myscript를 반복적으로 실행하고 싶습니다. 동시에 여러 파일에 대해 myscript를 실행하고 싶지 않습니다. 그래서 본질적으로 저는 발견된 파일을 반복하여 myscript에 소스를 입력하려고 합니다. 어떻게 해야 하나요?

답변1

발견된 각 파일에 대해 명령 이 실행 find되며 myscript파일 이름을 첫 번째 명령줄 인수로 에 전달합니다 myscript.

myscript파일을 에 가져오려면 myscript해당 코드에 다음이 있어야 합니다.

. ./"$1"

노트:

  • 나는 myscript그것이 쉘에 의해 해석된다고 가정합니다.
  • 당신은 언급했지만 source.휴대 가능합니다.
  • ./"$1"당신이 사용했기 때문에 나는 그것을 사용했습니다 -execdir.것 같다의 일부 구현은 find이후를 대체하는 문자열에 포함되지 않습니다 ./. 그렇다면,{}-execdir사고일어날 수 있습니다. 명시적으로 추가하면 ./이를 방지할 수 있습니다.

관련 정보