Игнорирование клавиш со стрелками при использовании меню выбора с readline

#bash #select #options #backspace #arrow-keys

#bash #обратный пробел #клавиши со стрелками

Вопрос:

Я написал скрипт bash, который выглядит следующим образом, который в основном обрабатывает пользовательские операции на основе выбора.

 PS3='Please enter current status of the completion: '
    boolean_status=("completed" "not-yet")
    select opt in "${boolean_status[@]}"
    do
       if [ "$REPLY" -ge 1 -a "$REPLY" -le 2 ]; then   
        n=$opt
        break;
       fi
    done
  

Но я столкнулся с проблемой с этим фрагментом кода, который принимает ввод этого кода backspace as ^H и up as [[A^ и т.д. Я хочу, чтобы мой пользователь свободно использовал стрелки вверх и вниз без появления этих символов. Есть ли способ решить эту проблему.

Как и в read команде, у нас есть -e опция, которая игнорирует все эти символы, что это эквивалентно в select??

Комментарии:

1. Кажется, вам понадобится замена select, которая использует readline.

2. @DanD. Хорошо, но как я могу использовать readline здесь??

3. Напишите свой собственный выбор . Замените там read -p '#? ' opt на read -e -p '#? ' opt , чтобы использовать readline.

4. @KNDheeraj: помог ли вам ответ?

5. @Inian на самом деле я попробовал решение сайруса, и оно работало нормально, поэтому не тестировал ваше решение!!