2013-02-25 2 views
1

내가 쓰고있는 간단한 등급 지정 스크립트에 문제가 있습니다. 수업 중에 각 학생을위한 폴더가 들어있는 HW5라는 디렉토리가 있습니다. HW5 폴더가 들어있는 현재 디렉토리에서 mondial이라는 단어로 시작하는 모든 파일을 각 학생의 폴더에 복사하고 싶습니다. 내 스크립트는 실행되지만 파일을 복사하지 않습니다. 어떤 제안?간단한 Bash 스크립트 파일 복사

#!/bin/bash                           

for file in ./HW5; do 
    if [ -d $file ]; then 
     cp ./mondial.* ./$file; 
    fi 
done 

감사

+1

이 반복 번'/ HW5'과'$ file' 값으로.. – jordanm

답변

8

는 제 1 루프는 동일한 file./HW5으로 한 번만 실행 하였다. 실제로 파일이나 디렉토리를 선택하려면 별표를 추가하십시오. 마크 리드에 의해 제안

#!/bin/bash                           

for file in ./HW5/*; do 
    if [ -d "$file" ]; then 
    cp ./mondial.* ./"$file" 
    fi 
done 

,이 단순화 될 수있다

for file in ./HW5/*/; do 
    cp ./mondial.* ./"$file" 
done 
+2

또는 ./HW5/ * /;에있는'for 파일 '을 사용하고'-d' 테스트를 건너 뜁니다. –

+0

공백을 포함하고 적절히 들여 쓰여지지 않은 디렉토리에서 중단됩니다. 전 수정을 수정하여 되돌 렸습니다. – jordanm

+0

@jordanm이 가리키는 것처럼,'$ file'의 확장은'cp ./mondial.* ./"$ file "'과 같이 인용되어야합니다. –

관련 문제