간단한 bash 스크립트에서는 하위 디렉터리를 반복할 수 없습니다.

간단한 bash 스크립트에서는 하위 디렉터리를 반복할 수 없습니다.

여기 아주 짧은 쉘 스크립트가 있습니다.

MYPATH=/home/robert/fatherdir

for d in $MYPATH/*/; do
    echo "$d"
done

스크립트를 실행하면 터미널에 다음과 같은 에코 출력이 표시됩니다.대신에하위 디렉토리 childirectorychildfolder:

/home/robert/fatherdir/*/

나는 이 일을 약 3시간 동안 해왔고, 그것이 나를 미치게 만든다.정밀한cronjob 스크립트의 동일한 코드(공백 포함!)가 작동합니다! 이는 하위 디렉터리가 성공적으로 순환되었음을 의미합니다. Cronjob은 테스트 스크립트를 실행하는 데에도 사용하는 /bin/sh를 사용합니다. /bin/sh는 Gnu bash 4.4.23입니다.

관련 정보