小编gla*_*3dr的帖子

如何“懒惰”地读取 xrandr 的输出?

我有一个 bash 脚本,用于调整xrandr --verbose用于获取当前亮度的显示器亮度。它工作正常,但xrandr在我的机器上使用有点慢,正如你在这里看到的:

[PROMPT REDACTED]$ time xrandr --verbose
# xrandr output omitted for brevity
real    0m0.976s
user    0m0.003s
sys     0m0.002s
Run Code Online (Sandbox Code Playgroud)

这会输出很多我不需要的信息,此外还需要将近一秒钟的时间。我实际需要的输出中唯一的一行是Brightness: X. 我目前正在使用此行从中获取值:

BRIGHTNESS=`xrandr --verbose | grep -i brightness | cut -f2 -d ' ' | head -n1`
Run Code Online (Sandbox Code Playgroud)

旁注:head最后调用是因为我有 2 个显示器,所以我最终得到 2 个值,但只需要 1 个,因为我将它们保持在相同的亮度。

由于我只需要来自 的那一行xrandr --verbose,我想知道是否有一种方法可以通过执行以下操作来“懒惰”地评估它:

  • xrandr一旦到达该行就停止输出
  • xrandr一旦我阅读了该行,就忽略其余的输出
  • 还有什么?

我意识到 bash 可能不是最适合这个的语言,所以我也愿意接受其他语言的解决方案。

display-settings shell-script text-processing

7
推荐指数
3
解决办法
7518
查看次数