'туалет-m' показывает один символ слишком многие

Добавьте эти строки к /etc/zshrc и затем сделайте a source /etc/zshrc (взятый отсюда)

bindkey '\e[1~'   beginning-of-line  # Linux console
bindkey '\e[H'    beginning-of-line  # xterm
bindkey '\eOH'    beginning-of-line  # gnome-terminal
bindkey '\e[2~'   overwrite-mode     # Linux console, xterm, gnome-terminal
bindkey '\e[3~'   delete-char        # Linux console, xterm, gnome-terminal
bindkey '\e[4~'   end-of-line        # Linux console
bindkey '\e[F'    end-of-line        # xterm
bindkey '\eOF'    end-of-line        # gnome-terminal

2
21.03.2019, 19:04
1 ответ

Это связано с командой, которую вы используете для трубки строки в WC . Команда ECHO ускользает в дополнительном символе в конце вашей строки, теста , новый символ новой линии \ N .

Так что действует, вы считаете это: Test \ N . Вы можете отключить это поведение с помощью переключателя -N на ECHO .

$ echo -n "test" | wc -c
4

Или используйте другую команду для генерации вашей строки, например PrintF :

$ printf "%s" "test" | wc -c
4

Видеть, что происходит

, вы можете использовать OD , чтобы увидеть фактические символы, которые являются Getitng передан в трубу, как так:

$ echo "test" | od -c
0000000   t   e   s   t  \n
0000005

$ echo -n "test" | od -c
0000000   t   e   s   t
0000004
4
27.01.2020, 22:00

Теги

Похожие вопросы