Кажется, что трассировка предпочитает использовать сильные кавычки, когда это вообще возможно. Если бы мне пришлось угадывать, это было бы для легко воспроизводимых результатов, не зависящих от изменений переменных среды оболочки, как в этом случае:
$ echo '$var'
+ echo '$var'
$var
Сильные кавычки, по-видимому, также допускают «более простое» (т.е. е. не -экранированные )репродукции, как в:
$ echo \\ # why is the trace print out not: echo \\
+ echo '\'
\
Однако при воспроизведении '
s, поскольку он выбирает сильные кавычки, он должен их экранировать. Я предполагаю, что это будет более простой логикой, чем рассмотрение вопроса о том, следует ли использовать слабые или сильные кавычки, что потенциально может привести к беспорядку при проверке регистра -.
Поскольку псевдоним rm
работает нормально, очевидно, что ваш .zshrc
настроен правильно.
Если вы используете oh-my-zsh
, проверьте этот вопрос:Псевдоним zsh каким-то образом переопределяется
В противном случае попробуйте cat ~/.zshrc | grep alias
просмотреть все псевдонимы, установленные в вашем .zshrc
, чтобы убедиться, что не установлены другие псевдонимы.