Bash
選擇循環中的退格鍵
當我使用選擇循環創建選項列表時,如果我在提示期間出錯並想按退格鍵,它不會刪除字元,而是顯示 ^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
+?
。但更有用的解決方案是確保您的終端設置符合您的期望(和輸入)。