我正在尝试将变量传递给 xrandr,以便当脚本运行时,它将输出自动分辨率。
#!/bin/bash
DISPLAY=$(xrandr | grep ' connected' | cut-d' ' -f1)
xrandr --output "$DISPLAY" --auto
会输出
无法打开显示器 DisplayPort-0
如果我像下面这样改变变量..
DISPLAY=DisplayPort-0
它仍然会抛出相同的错误
只有当我硬编码,或者像这样运行实际命令时......
xrandr --output DisplayPort-0 --auto
它会按预期运行吗?有什么想法吗?我觉得令人费解的是为什么 xrandr 不接受 bash 脚本中的变量。
答案1
不幸的命名 -DISPLAY
已被保留以指向正确的 X 服务器。打开一个新的 shell 并检查其内容:
$ echo $DISPLAY
:0
为变量使用不同的名称DISPLAY
。顺便说一句,这也是为什么建议在脚本中使用小写变量名称的原因,因此在您的情况下可能是:
display=$(xrandr | grep ' connected' | cut -d' ' -f1)
此外,请注意可能同时连接超过 1 个屏幕,在这种情况下xrandr --output "$display" --auto
将会失败。