찾은 파일을 스크립트에서 소스로 반복적으로 전달하는 방법

찾은 파일을 스크립트에서 소스로 반복적으로 전달하는 방법

다음과 같이 .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.것 같다의 일부 구현은 after 로 대체된 문자열에 find포함되지 않습니다 . 만약 그랬다면,./{}-execdir이번 사고일어날 수 있습니다. 명시적 항목을 추가하면 ./이를 방지할 수 있습니다.

관련 정보