2013-08-30 4 views
0

Я работаю над скриптом, который читает каталоги в пути и предлагает пользователю выбрать каталог ведьмы. Сценарий до сих пор выглядит следующим образом:bash script, подскажите пользователю, чтобы выбрать идентификатор или завершение имени

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» штучка это функция, которая проверяет, является ли переменная $ всячески манипулировать является членом массива list_files. Этот скрипт работает отлично, а на выходе что-то вроде этого:

1) first_folder 
2) second_folder 
3) yet_another_folder 

И пользователь может выбрать папку ведьмы, введя соответствующее значение ID (т.е. «2» для «second_folder»).

То, что я борюсь с такой: Есть ли способ, чтобы проверить, если предоставленный ответ правильный номер -или- правильное имя файла? И если вы можете написать в имени файла вручную, есть ли способ реализовать завершение имени в этом скрипте?

Фактический ответ на выбор проводятся в переменных $ ОТВЕТА, мне нужно как-то проверить как $ и $ всячески манипулировать ОТВЕТ. Механизм завершения является гораздо более сложным, я подозреваю ..

Кто-нибудь есть хорошее предложение здесь? Было бы здорово, если бы вы смогли помочь мне в этих функциях!

ответ

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 

Это делает как идентификационный номер, так и полное имя каталога, код немного уродлив, хотя и не завершено имя.

+0

Ах! Спасибо, это дает мне несколько идей для работы, спасибо :) –

Смежные вопросы