屏幕旋转脚本出现问题

屏幕旋转脚本出现问题

我在 Dell XPS 12 Convertible 笔记本电脑/平板电脑上运行 Antergos linux 和 Gnome 3.18.2,并且正在努力使屏幕旋转更加方便。

我从以下脚本中提取了以下脚本的一个版本Ubuntu 论坛帖子并修改它以匹配我的显示名称等。每一行单独运行时都有预期的结果,但是当我运行实际脚本时,没有任何反应 - 没有错误,没有屏幕旋转,什么也没有:

 #!/bin/sh
rotation='xrandr -q --verbose|grep eDP1|cut -b45-50'
if [[ $rotation = "normal" ]] ;
then
  xrandr -o right
else
  xrandr -o normal
fi

有什么想法为什么这没有按预期工作吗?

提前致谢!

答案1

快速解决方案


您设置的方式rotation会导致变量包含您想要从中获取输出的写出命令。
您想要做的是将command substitution命令的输出存储在rotation.您可以通过使用rotation=$(xrandr -q ...)或来实现此目的rotation=`xrandr -q ...`

背景


命令替换在子 shell 中执行命令并将其输出存储到stdout变量中。这是很常见的事情,我个人更喜欢使用$().

您可以阅读更多command substitution内容Bash 黑客维基

通过使用单引号(强引号),您可以告诉 bash 不要扩展引号内的任何内容。例如,与a='$FOO'$a保持$FOO。 Bash 保留您引用的内容不变,并直接将其混入您的变量中。

更多关于引用的信息也可以在Bash 黑客维基

相关内容