2013-08-30 2 views
0

경로에서 디렉토리를 읽고 선택할 마녀 디렉토리를 묻는 스크립트 작업을하고 있습니다. 스크립트는 지금까지 다음과 같다bash 스크립트, ID 또는 이름 완성을 선택하라는 프롬프트 메시지

select choises in ${list_files[@]}; do 
    if CONTAINS_ELEMENT $choises "${list_files[@]}"; then 
    break 
    else 
    echo "invalid choise (PS use the ID numbers)! Try again:" 
    fi 
done 

은 "CONTAINS_ELEMENT"꼬는 변수 $ choises가 list_files 어레이의 멤버인지 확인하는 기능이다. 이 스크립트는 잘 작동하고, 출력은 다음과 같은 것입니다 :

1) first_folder 
2) second_folder 
3) yet_another_folder 

그리고 사용자가 ("second_folder"에 대한, 즉 "2") 해당 ID 값을 입력하여 마녀 폴더를 선택할 수 있습니다.

내가 겪고있는 문제는 다음과 같습니다. 제공된 답변이 올바른 숫자인지 또는 올바른 파일 이름인지 확인하는 방법이 있습니까? 수동으로 파일 이름을 쓸 수 있다면이 스크립트에서 이름 완성을 구현할 수있는 방법이 있습니까?

select에 대한 실제 회신은 $ REPLY 변수에 보관되어 있으므로 $ choises와 $ REPLY를 모두 확인해야합니다. 완료 메커니즘은 내가 생각하기에 훨씬 까다 롭다 ..

누구나 좋은 제안이 있습니까? 당신이 내가 이런 기능들을 갖도록 도울 수 있다면 그것은 아주 멋질 것입니다 !!

답변

0
select choises in ${list_files[@]}; do 
    if CONTAINS_ELEMENT $choises "${list_files[@]}" || CONTAINS_ELEMENT $REPLY "${list_files[@]}"; then 
    break 
    else 
    echo "invalid choise (PS use the ID numbers)! Try again:" 
    fi 
done 

이렇게하면 ID 번호와 전체 디렉토리 이름이 모두 작동하고 코드가 약간 엉망이되어 이름 완성이되지 않습니다.

+0

아! 고마워,이 날 좀 감사와 함께 일할 수있는 아이디어를 제공합니다 :) –