alias 'gsi=<<eof grep --color'
Псевдоним будет работать так же, как замена текста в препроцессоре, где замена снова интерпретируется как шелл-код.
Ваш не работал, как у вас "$1"
. С заменой gsi file.txt
на cat <<eof | grep --color "$1" file.txt
оболочка продолжает интерпретировать эту командную строку, и $1
в этот момент является первым позиционным параметром оболочки, который, вероятно, пуст, если только вы не сделали set something
заранее. Итак, вам нужно удалить "$1"
здесь. Вы также можете удалить UUOC.
gsi() { cat <<eof | grep --color "$1" ; }
неверно с точки зрения синтаксиса, так как после строки cat <<eof
отсутствует строка eof
.
Как terdon говорит , less
’ поведение по умолчанию заключается в отображении эквивалентов специальных символов в стиле cat -v
. less -R
изменит это так, что управляющие последовательности будут передаваться всему, что обрабатывает дисплей.
less
можно указать с помощью переменной окружения LESS
, например, .
export LESS=-R
git
имеет собственное представление о том, что должен делать его пейджер. Если переменная окружения LESS
не установлена, она будет установлена в FRX
при вызове less
, что соответствует ожиданиям git
; еслиLESS
установлено , оно останется без изменений, что может привести к нечитаемому выводу, если LESS
не включает -R
.
Существует два способа настройки less
для использования с git
:: либо настроить глобально с помощью переменной LESS
, либо изменить настройку core.pager
, , например.
git config --global core.pager "less -R"
Это поведение по умолчанию less
. Используйте less -R
, если вы хотите увидеть цветной вывод (из man less
):
-R or --RAW-CONTROL-CHARS
Like -r, but only ANSI "color" escape sequences and OSC 8 hy‐
perlink sequences are output in "raw" form. Unlike -r, the
screen appearance is maintained correctly, provided that there
are no escape sequences in the file other than these types of
escape sequences. Color escape sequences are only supported
when the color is changed within one line, not across lines.
In other words, the beginning of each line is assumed to be
normal (non-colored), regardless of any escape sequences in
previous lines. For the purpose of keeping track of screen ap‐
pearance, these escape sequences are assumed to not move the
cursor.
Вероятно, вы привыкли к системам, в которых less
настроено как псевдоним для less -R
, поэтому это застало вас врасплох.