![누구든지 다음 문제에 대한 스크립트 작성 방법을 제안할 수 있습니까? [폐쇄]](https://linux55.com/image/78723/%EB%88%84%EA%B5%AC%EB%93%A0%EC%A7%80%20%EB%8B%A4%EC%9D%8C%20%EB%AC%B8%EC%A0%9C%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EC%9E%91%EC%84%B1%20%EB%B0%A9%EB%B2%95%EC%9D%84%20%EC%A0%9C%EC%95%88%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
누구든지 스크립트에서 이 단계를 사용하는 방법을 제안할 수 있습니까? (첫 번째 명령의 출력을 가져와야 하고 세 명령 모두에 대해 두 번째 명령을 사용해야 합니다.)
[aaa@build]$ find . -name src
./Port/bit/WE-IN/src
./MI/M-Scripts/Msg/src
./MI/M-Scripts/TT/src
[aaa@build]$ cd ./Port/bit/WE-IN/src
답변1
찾고 있는 명령은 xargs
일반적으로 다음과 같이 사용합니다.
find . -name src -print0 | xargs -I{} -0 echo {}
또는 명시적인 질문의 경우:
find . -name src -print0 | xargs -I{} -0 cd {}
답변2
당신이 할 수 있는 일은 쉘 함수를 선언하고 각 디렉토리에 대한 함수를 호출하는 while 루프에 find의 각 결과를 전달하는 것입니다.
#!/bin/bash
function f
{
echo "THIS IS " $(pwd)
ls
}
find . -maxdepth 1 -type d -name "bin" -printf "%P\n" | while read DIRNAME;
do
cd $DIRNAME
f
done
실행 예시는 다음과 같습니다.
$ ./findAndFunction.sh
THIS IS /home/xieerqi/bin
autostart-script.sh c java perl python README.md sergrep shell