2014-12-08 2 views
1

저는 BASH을 처음 사용하지 않고 존재하지 않는 링크로 작동하는 스크립트를 만들려고합니다. 스크립트는 여러 매개 변수를 가질 수 있습니다. "-v"- 스크립트는 1, "-r"을 출력합니다 - 스크립트는 존재하지 않는 모든 파일에 대한 링크를 제거합니다 "-a"- 스크립트는 링크를 출력합니다 디렉토리의 모든 파일에 적용됩니다. 임의의 순서로 여러 매개 변수가있을 수 있습니다. 이것은 내가 생각해 낸 것입니다 :존재하지 않는 파일에 대한 링크로 작업하기

#!/bin/bash 

linkchk_r() { 
    for element in $1/*; do 
     [ -h "$element" -a ! -e "$element" ] && $ rm "$element" 
    done 
} 

linkchk_a(){ 
    for element in $1/*; do 
     echo "$element" 
    done 
} 

if [ $1 = "-v" ] 
then 
    echo 1 
fi 

case "$3" in 
"-a") 
    linkchk_a $2 
;; 

"-r") 
    linkchk_r $2 
;; 

esac 

exit 0 

그러나 테스트 시스템에서는 스크립트가 1 분 이상 작동하므로 어딘가에 실수가 있습니다. 전체 코드에 대해 조언하고 조언 해 주시겠습니까?

답변

1

stat softlink이 작동하면 확인하지만, stat -L softlink은 0이 아닌 상태를 반환하며 매달린 링크입니다. 확인 stat 맨 페이지

관련 문제