Homebrew 如何在终端中打印啤酒杯?

sti*_*tib 78 bash terminal.app homebrew macos

Homebrew 有一个巧妙的技巧,可以在其输出旁边打印出小图标。像这样:

终端输出中的酿造图标

如果我自己复制粘贴图标并按回车键,我会得到结果:

-bash: $'?\237\215?': command not found
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用echo或者printf我只是get ????. 如果我转义所有引号和$s 等,则相同。

editron:~ stib$ echo $'?\237\215?'
????
Run Code Online (Sandbox Code Playgroud)

那么他们是如何做到的呢?魔法字符$'?\237\215?'是什么意思?

小智 70

Homebrew 是开源的,所以你可以阅读它的代码来了解它是如何显示图标的。他们使用的行在文件中formula_installer.rb

print "  " if MacOS.version >= :lion
Run Code Online (Sandbox Code Playgroud)

print命令中的第一个字符是“ ”,或unicode #1f37a 'BEER MUG'

所以它不是一个图标,而是一个有趣的 unicode 啤酒杯 :)

  • 惊人的。所以在shell中我可以做 echo -e "\xF0\x9f\x8d\xba" (19认同)
  • 另外,尝试在 OS X 字典中查找(右键单击 > 查找);) (4认同)
  • 或者使用八进制:`echo $'\360\237\215\272'` (4认同)

小智 13

顺便说一句,在终端中尝试另一个变体:

echo $'\360\237\215\270'
echo $'\360\237\215\271'
echo $'\360\237\215\273'
echo $'\360\237\215\274'
Run Code Online (Sandbox Code Playgroud)

  • 对于那些没有包含这些符号的字体的人:这些是各种饮料的符号/图片。见 http://codepoints.net/miscellaneous_symbols_and_pictographs (3认同)