情况:我正在使用多台监视器,我想用bash来获取它们的名称。目前,我正在使用Ubuntu 10.04。
我了解xrandr。从中我只能得到统计数据。我想要的是读取数组中的所有监视器名称以使用它们。
有没有一种清晰的方法可以不从某种字符串中删除名称呢?一种清晰的方法是从文件中读取它们。一种不清楚的方法是将xrandr输出传递给某种函数以从中删除名称。
最佳答案
sudo get-edid
对我不起作用。 (编辑:现在可以在另一台计算机Lubuntu 14.10上工作;我要怪BIOS的差异,但这是一个随机的猜测...)
无论如何在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 = "";
}'
关于linux - Linux检索监视器名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10500521/