在 Linux 終端進入 sqlplus 後,按 Backspace 顯示 ^H 而非刪除字符,是因為終端擦除字符設置與 sqlplus 期望不一致。提供臨時與永久兩種修復方案。
# 在啟動 sqlplus 前執行 stty erase '^H' # 含義:將終端擦除字符設置為 Ctrl+H (ASCII 0x08),與 sqlplus 期望一致
# 編輯當前用戶 .profile 或 .bashrc echo "stty erase '^H'" >> ~/.profile # 重新登錄或 source ~/.profile 生效
若不願修改終端設置,可在 sqlplus 內使用 Ctrl+Backspace 代替 Backspace 進行刪除。
stty 用於設置終端 I/O 參數,erase 參數定義「刪除前一字符」的控制字符;0x7F (DEL) 或 0x08 (BS),sqlplus 歷史版本預期 0x08;stty erase '^H' 將終端驅動層的擦除字符映射為 0x08,從而匹配 sqlplus。