Unix: 특정 이름을 가진 디렉터리에서 스크립트를 실행하고 싶습니다.

Unix: 특정 이름을 가진 디렉터리에서 스크립트를 실행하고 싶습니다.

나는 bash에서 스크립트를 작성하고 있습니다.

Foo 디렉터리에 있는 경우 foo 뒤에 최대 3개의 숫자가 포함된 foo라는 이름의 foo 하위 디렉터리에서만 이 스크립트를 실행하고 싶습니다.

예: foo1, foo23, foo345 등

테스트는 내 스크립트의 이름입니다.

이것이 내가 지금까지 가지고 있는 것입니다. 이 스크립트에서 검색할 디렉터리를 정확히 지정하는 방법을 기억할 수 없습니다.

다른 중요한 사항: 저는 SSH 클라이언트에서 실행 중입니다.

for i in foo*
    do                 
        if [ -d $i ]   
            then
               sh ./test 
               echo "Test is working."
        fi
    done

답변1

이것옳은이를 수행하는 방법은 스크립트가 디렉토리를 매개변수로 사용하도록 하는 것입니다.

for directory in foo*/
do
    ./test.sh "$directory"
done

루프의 후행 슬래시는 for디렉터리 및 디렉터리에 대한 심볼릭 링크를 반복하도록 보장합니다. 디렉터리를 스크립트에 전달하면 스크립트와 대상 디렉터리를 이동할 수 있습니다.어딘가에작동시키기 위해 특별한 작업을 수행할 필요는 없습니다.

보다 구체적으로 디렉토리를 선택하려면 다음을 읽어야 합니다.구체, 특히 extglob.

관련 정보