有谁在使用 zsh 时遇到过 Ruby 的打印方法在行尾留下 % 的问题吗?
我正在使用 oh-my-zsh (https://github.com/robbyrussell/oh-my-zsh) 与 iTerm2。
下面是我的输出示例:
➜ Strings ruby terminal-input.rb
What is your favorite movie? django
Your favorite movie is django.%
我尝试在 OSX 10.9.2 上使用我的本机终端,但遇到了同样的问题。如果我将 shell 切换到 bash,一切都会按预期运行。
任何帮助都非常感谢。提前致谢!
答案1
您的脚本没有问题,因为%
不是脚本输出的一部分,而是放在那里的zsh
。zsh
打印%
(通常以反转的颜色)以指示最后的输出没有以换行符结束。
它似乎工作得很好的原因是bash
,bash 不会指示缺少换行符。最好以换行符 ( \n
) 结束(至少是最后一个输出),因为某些 shell 不会识别它并在输出的同一行中打印下一个提示:
<someprompt> ruby -e 'print "foobar"'
foobar<someprompt>
rubyprint
命令不会自动添加换行符:
% ruby -e 'print "foobar"'
foobar%
%
你可以通过多种方式自行添加
% ruby -e 'print "foobar\n"'
foobar
% ruby -e 'print "foobar" + "\n"'
foobar
% ruby -e 'print "foobar", "\n"'
foobar
%
或者你可以直接使用puts
而不是打印
% ruby -e 'puts "foobar"'
foobar
%