我想知道如何在我的bash脚本中制作一个摄氏字符,所以我可以在“CPU temp:50 C”行中更正输出结果? 这种特殊字符的转义序列是什么,提供我的字体支持它们?如何在Bash脚本中为conky创建特殊字符?
仍然抓我的头......
更准确地说我需要它在Conky的 使用我用这个行:awk '{printf的($ 3" C“)}'。我应该如何纠正它,以便输出摄氏度? 原因如果我直接插入℃字符,conky螺丝它。
我想知道如何在我的bash脚本中制作一个摄氏字符,所以我可以在“CPU temp:50 C”行中更正输出结果? 这种特殊字符的转义序列是什么,提供我的字体支持它们?如何在Bash脚本中为conky创建特殊字符?
仍然抓我的头......
更准确地说我需要它在Conky的 使用我用这个行:awk '{printf的($ 3" C“)}'。我应该如何纠正它,以便输出摄氏度? 原因如果我直接插入℃字符,conky螺丝它。
根据终端的设置,脚本输出到终端的所有非控制字节序列都被解释为显示。如果您将其配置为将传入数据解释为utf-8,则您在bash脚本中的所有操作都将按照utf-8的要求输出摄氏字符。
设置您的终端权利取决于您使用的应用程序。它很可能已经处于utf-8模式。
为了显示您想要的字符,您需要查找其Unicode编码点并使用utf-8编码,或者您可以在某处查看字符的utf-8序列。例如,摄氏字符描述为here。
摄氏度UTF-8序列是0xE2的0x84 0×83,所以你可以在使用$'string'
构建你的外壳,因为它接受\xhh
逃生显示它:
$ echo $'\xe2\x84\x83'
℃
或-e回声:
$ echo -e '\xe2\x84\x83'
℃
另外,还可以将其分配给一个变量
$ CEL=$'\xe2\x84\x83'
$ echo $CEL
℃
如果你想显示℃作为两个独立的人物:人物等级和字母C,那么你可以使用this character这个命令:
$ echo $'\xc2\xb0'C
°C
如果您正在使用的不支持$'string'
构建物的外壳,你也可以使用像Perl或Python工具:
$ python -c 'print "\xe2\x84\x83"'
℃
$ perl -e 'print "\xe2\x84\x83\n"'
℃
在GNU awk
你可以使用标准的C语言逃脱,包括\xhh
,例如:
$ awk 'BEGIN { print "\xe2\x84\x83"; }'
℃
$ awk 'BEGIN { print "\xc2\xb0\C"; }'
°C
请注意,需要额外的反斜杠来终止十六进制数字(没有它,转义序列消耗包括字母C的所有十六进制数字,请参阅GNU awk user's guide)。
awk
更便携的解决方案是使用八进制序列。由于十六进制为0xC2是八进制302和十六进制0XB0是八进制的260,你可以做到以下几点:
$ awk 'BEGIN { print "\302\260C"; }'
°C
同样,
$ awk 'BEGIN { print "\342\204\203"; }'
℃
没有对°的转义序列,据我知道的。
感谢你的帮助 – mountpeaks
我不能够找到的'$'string''构建任何参考;它的确切名称是什么,或者它在哪里记录? – davide
'man bash'然后搜索'$'' –