2014-12-08 5 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 возвращает ненулевой статус, это болтающаяся ссылка. Проверка stat manpage