Hash 如何从bash或python对主机名进行颜色编码?

Hash 如何从bash或python对主机名进行颜色编码?,hash,text-coloring,Hash,Text Coloring,我正在寻找一个简单的解决方案,将给我一个RGB颜色的每个主机名 我计划用它来设置iTerm2中的标签颜色,这样我就可以很容易地根据它的颜色标记来确定正确的主机 现在,我不能全部使用3字节,因为在某些情况下,差异可能太微妙,也因为我需要禁止太暗到太浅的颜色 基于此,我只能假设我可以安全地为每种颜色使用5位,这会给我一些类似于2^15=128种颜色的选择。我可以处理将数字转换为R、G、B值的公式;) 所以我需要的是一段简单的代码,它将给我一个15位的字符串散列(主机名) 如果这在bash中是可行的,

我正在寻找一个简单的解决方案,将给我一个RGB颜色的每个主机名

我计划用它来设置iTerm2中的标签颜色,这样我就可以很容易地根据它的颜色标记来确定正确的主机

现在,我不能全部使用3字节,因为在某些情况下,差异可能太微妙,也因为我需要禁止太暗到太浅的颜色

基于此,我只能假设我可以安全地为每种颜色使用5位,这会给我一些类似于2^15=128种颜色的选择。我可以处理将数字转换为R、G、B值的公式;)

所以我需要的是一段简单的代码,它将给我一个15位的字符串散列(主机名)

如果这在bash中是可行的,那将是完美的,但我也接受Python变体


解决方案必须在Debian、RedHat和OS X上运行,而不必安装额外的UTIL或库。

您能解释一下最终的echo字符串及其含义吗?提前感谢,它确实会根据主机名的哈希值设置RGB值。考虑到我们有3*2^256种颜色,并且散列值具有类似随机分布的特性,您将为每个主机名(或至少大多数主机名)获得不同的颜色。您能否解释一下最终的回显字符串及其含义?提前感谢,它确实会根据主机名的哈希值设置RGB值。考虑到我们有3*2^256种颜色,并且散列值具有类似随机分布的特性,您将为每个主机名获得不同的颜色,或者至少是其中的大多数。
#!/bin/bash
MD5="md5sum"
if [[ $OS == 'darwin' ]]; then MD5="md5" ; fi
HASH=`hostname -s | ${MD5}`
echo -n -e     "\033]6;1;bg;red;brightness;$((0x${HASH:0:2}))\a\033]6;1;bg;green;brightness;$((0x${HASH:2:2}))\a\033]6;1;bg;blue;brightness;$((0x${HASH:4:2}))\a"