ループ内のバックスペースキーの選択

ループ内のバックスペースキーの選択

選択ループを使用してオプションのリストを作成するときに、プロンプトで間違えてバックスペースを押すと、文字は削除されず、文字の代わりに^ Hが表示されます。

「読み取り」で-eを使用してこの問題を解決できることを知っていますが、選択ループではどうすればよいですか?また、Ctrl + Cを使用してループを出ることは機能しません。メニューと同じ方法でリモート側のディレクトリを繰り返す選択ループを作成しました。ディレクトリを選択すると、ディレクトリは変更されますが、ディレクトリではない場合は編集するファイルとして選択されます。

until [[ $DONE == Yes ]]; do
select dir in $(ssh auth1 ls $PUTANJA $ONLYARPA) Nazad; do
        case $dir in
                "Nazad")
                        if [ "$PUTANJA" == "/var/named/chroot/var/named/master" ]; then
                                return
                        else
                                PUTANJA=$(ssh auth1 "cd $PUTANJA; cd ..; pwd")
                        fi
                        ;;
                *)
                        if ssh auth1 "[ -d $PUTANJA/$dir ]"; then
                                PUTANJA=$PUTANJA/$dir
                        else
                                ZONA=$dir
                                DONE=Yes
                        fi
                        ;;
        esac
        break
done
done

答え1

^Hこのキーを押したときに端末が表示された場合は、端末Backspaceから送信された文字とは異なる文字でバックスペースシーケンスを設定した可能性が高くなります。最も一般的なバックスペース文字の1つです^?Ctrl+を押してみてください?。ただし、より便利な解決策は、端末設定が期待値(および入力)と一致することを確認することです。

関連情報