Jak używać mniej w skrypcie bez uzyskania znaków specjalnych ESC?

8

Kiedy używam lessw wierszu poleceń, dane wyjściowe są jak wprowadź opis zdjęcia tutaj

ale kiedy używam lessz poziomu skryptu bash, otrzymuję: <code> [! [wprowadź opis obrazu tutaj] [1]] [1] </code>

Jak mogę użyć lessw skrypcie bash, aby nie uzyskać wszystkich znaków zmiany znaczenia i pozwolić, aby działało tak, jak działa w interaktywnym wierszu poleceń?

Michael Durrant
źródło
1
Masz zmienną środowiskową, której nazwa zaczyna się LESSod wartości ustawionej w interaktywnej powłoce, ale nie w skrypcie powłoki. Czy, printenv | grep LESSaby dowiedzieć się o jego tożsamości, a następnie możesz ustawić go w skrypcie powłoki lub użyć równoważnych opcji wiersza polecenia.
zwolnienie

Odpowiedzi:

23

Użyj -Rflagi:

-r lub --raw-control-chars

Powoduje wyświetlanie „surowych” znaków sterujących. Domyślnie znaki kontrolne są wyświetlane za pomocą notacji karetki; na przykład formant A (ósemkowy 001) jest wyświetlany jako „^ A”. Ostrzeżenie: gdy używana jest opcja -r, less nie może śledzić faktycznego wyglądu ekranu (ponieważ zależy to od reakcji ekranu na każdy typ znaku kontrolnego). Dlatego mogą wystąpić różne problemy z wyświetlaniem, takie jak długie linie dzielone w niewłaściwym miejscu.

-R lub --RAW-CONTROL-CHARS

Podobnie jak -r, ale tylko sekwencje specjalne „kolorowe” ANSI są generowane w postaci „surowej”. W odróżnieniu od opcji -r w większości przypadków wygląd ekranu jest poprawnie utrzymywany. Sekwencje specjalne ANSI „kolorowe” są sekwencjami postaci:

           ESC [ ... m

gdzie „...” to zero lub więcej znaków specyfikacji kolorów W celu śledzenia wyglądu ekranu zakłada się, że sekwencje specjalne koloru ANSI nie poruszają kursorem. Możesz mniej myśleć, że znaki inne niż „m” mogą kończyć sekwencje specjalne koloru ANSI, ustawiając zmienną środowiskową LESSANSIENDCHARS na listę znaków, które mogą zakończyć sekwencję zmiany koloru. I możesz mniej myśleć, że znaki inne niż standardowe mogą pojawiać się między ESC a m, ustawiając zmienną środowiskową LESSANSIMIDCHARS na listę znaków, które mogą się pojawiać.

Ze lessstrony podręcznika.

kubek kawy
źródło