Назад | Перейти на главную страницу

Ошибка цитаты в zsh printf

Кто-нибудь знает, почему я постоянно сталкиваюсь с этой ошибкой в ​​zsh? Это похоже на ошибку форматирования строки:

~% printf "%s\n" foo

" foo)foo

В основном все, что имеет двойные кавычки, интерпретируется аналогичным образом:

~% perl -e 'printf("%s\n", "foobar")'

", "foobar")')foobar

Конфигурация Zsh не продумана, просто некоторые базовые вещи, такие как:

setopt appendhistory histignorealldups autocd autopushd
bindkey -e
zstyle :compinstall filename '/home/zike/.zshrc'
autoload -Uz compinit
compinit

какие-либо намеки, почему это может произойти? Спасибо.

Это работает для меня:

> printf "%s\n" foo
foo

Какая у вас версия zsh в какой системе? У меня в Linux стоит zsh 4.3.10.

хорошо. спасибо за ответы, я наконец-то снял шлепки и снова проверил файл конфигурации. это забавное поведение вызвано хуком preexec:

preexec () { print -Pn "\e]0;%m - %~ ($1)\a" }

$1 расширяется до пользовательского ввода, и zsh не понимает спецификатора формата (%s то есть). я не нашел способа правильно очистить строку, но tr -d % делает свою работу. побег % не помогло.