回显多行变量时,Zsh输出额外的换行符?

时间:2012-01-27 06:55:26

标签: echo zsh

这与将promptsubst设置为开启有关。见下文:

[/Users/darren]# var="Testing...
dquote>1,
dquote>2,
dquote>3,
dquote>Testing..."
[/Users/darren]# setopt promptsubst
[/Users/darren]# echo $var




Testing...
1,
2,
3,
Testing...
[/Users/darren]# echo "$var"




Testing...
1,
2,
3,
Testing...
[/Users/darren]# unsetopt promptsubst
[/Users/darren]# echo "$var"         
Testing...
1,
2,
3,
Testing...
[/Users/darren]# echo $var           
Testing...
1,
2,
3,
Testing...
[/Users/darren]# 

在这种情况下,我将提示设置为非常简单,因此我确信它不是一个愚蠢的提示,但我的真实提示需要promptsubst才能显示Git状态。我也注意到它发生在像echo $var | grep Test这样的事情上。任何想法如何在保持promptsubst的同时解决这个问题?

我正在运行zsh 4.3.11并使用Oh-My-Zsh,如果这有帮助吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我已经弄清楚了。在通过禁用OMZ进行测试之后,我发现OMZ中有一些东西是原因。我设法将问题缩小到文件libs/termsupport.zsh。似乎Mac OS X上的Terminal.app存在问题并更新了标签标题。我已经向Github发布了修复程序:https://github.com/darrenclark/oh-my-zsh/commit/8f89d4d5a5d584bae288d8111d83a6489a1369dc