Shell

為什麼 Linux 在將文本粘貼到 shell 時允許退格?

  • March 21, 2018

在我遇到的許多 Linux 發行版中,將文本粘貼到 shell 時會包含退格字元。為什麼沒有阻止粘貼這些字元 - 或者此功能是否提供了一些有用的功能?

換句話說,Linux shell “知道”它是粘貼的字元串還是手動輸入的?

這種行為是如何處理的?

shell 只是在終端中執行的應用程序。對於粘貼,只有模擬器相關,但仍有“真實”終端(提示:Linux 控制台不是其中之一)。

忽略各種控制台實現,因為粘貼文本是以更有限的方式完成的,所以在 X 中執行的終端是問題的重點。終端仿真器只看到一系列事件。鍵入的鍵或粘貼的文本在終端仿真器中看起來是一樣的。

僅考慮終端仿真器(以及它們之間的選擇/粘貼),退格不是問題,因為選擇/粘貼適用於終端視窗上顯示的內容。也就是說,如果使用者在終端視窗上選擇文本,則只有可列印的文本(可能帶有製表符作為特殊情況)。沒有任何退格字元(除非有人有一個錯誤的終端實現),因為退格告訴終端向左移動游標。沒有可供終端在選擇中提供的可列印駐留。可能會使用數百個其他終端控制項,但退格鍵很簡單且使用廣泛。

退格是實施不佳的應用程序的問題,例如瀏覽器(它確實應該提供可列印文本的顯示……),顯然它將儲存一些腳本編寫者決定應該儲存在螢幕上的任何內容。

所以……與其問為什麼終端模擬器仍然允許 BS,人們可能會問為什麼 GUI 瀏覽器允許這種行為。

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