情况:我正在使用多台监视器,我想用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/

10-12 20:47