情况:我正在使用多个显示器,我想在bash中获得他们的名字.目前我正在使用Ubuntu 10.04.
我知道xrandr.从中我只能得到统计数据.我想要的是读取数组中的所有监视器名称以与它们一起工作.
有没有一个明确的方法来做,而不是从某种字符串中删除名字?一个明确的方法是从文件中读取它们.一个不清楚的方法是将xrandr输出管理到某种类型的一个函数,从中删除名称.
解决方法
sudo get-edid没有为我工作. (编辑:现在在另一台电脑上工作,Lubuntu 14.10;我会怪B
IOS的差异,但这是一个随机的猜测…)
无论如何在X下,xrandr –verbose打印EDID块.这是一个快速而肮脏的方法来解压缩并传递给parse-edid:
#!/bin/bash xrandr --verbose | perl -ne ' if ((/EDID(_DATA)?:/.../:/) && !/:/) { s/^\s+//; chomp; $hex .= $_; } elsif ($hex) { # Use "|strings" if you dont have read-edid package installed # and just want to see (or grep) the human-readable parts. open FH,"|parse-edid"; print FH pack("H*",$hex); $hex = ""; }'