Scripting

如何在不獲取 ESC 轉義字元的情況下在腳本中使用 less?

  • June 16, 2017

當我less在命令行使用時,輸出就像 在此處輸入圖像描述

但是當我less在 bash 腳本中使用時,我得到: <code>[![在此處輸入圖片描述][1]][1]</code>

如何less在 bash 腳本中使用而不是獲取所有轉義字元並讓它像在互動式命令行中一樣工作?

使用-R標誌:

-r 或 –raw-control-chars

導致顯示“原始”控製字元。預設是使用插入符號顯示控製字元;例如,控制項-A(八進制 001)顯示為“^A”。警告:當使用 -r 選項時,less 無法跟踪螢幕的實際外觀(因為這取決於螢幕如何響應每種類型的控製字元)。因此,可能會導致各種顯示問題,例如長線在錯誤的位置被分割。

-R 或 –RAW-CONTROL-CHARS

與 -r 類似,但只有 ANSI“顏色”轉義序列以“原始”形式輸出。與 -r 不同,在大多數情況下,螢幕外觀保持正確。ANSI“顏色”轉義序列是以下形式的序列:

           ESC [ ... m

其中“…”是零個或多個顏色規範字元 為了跟踪螢幕外觀,假定 ​​ANSI 顏色轉義序列不會移動游標。您可以通過將環境變數 LESSANSIENDCHARS 設置為可以結束顏色轉義序列的字元列表來減少“m”以外的字元可以結束 ANSI 顏色轉義序列的想法。通過將環境變數 LESSANSIMIDCHARS 設置為可以出現的字元列表,您可以減少在 ESC 和 m 之間出現標準字元以外的字元。

less手冊頁。

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