Bash

選擇循環中的退格鍵

  • April 9, 2019

當我使用選擇循環創建選項列表時,如果我在提示期間出錯並想按退格鍵,它不會刪除字元,而是顯示 ^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

^H如果您按下該鍵時終端正在顯示Backspace,則您的終端可能已將退格序列設置為與您發送的字元不同的字元。其他最常見的退格字元之一是^?. 嘗試按Ctrl+ ?。但更有用的解決方案是確保您的終端設置符合您的期望(和輸入)。

引用自:https://unix.stackexchange.com/questions/511496