Problemas com o Script de Rotação de Tela

0

Estou executando o Antergos linux com o Gnome 3.18.2 em um laptop / tablet Dell XPS 12 Convertible e estou trabalhando para tornar a rotação da tela mais conveniente.

Eu peguei uma versão do script a seguir de uma postagem no fórum do Ubuntu e a modifiquei para corresponder ao meu nome de exibição Cada linha tem o resultado esperado quando executada sozinha, mas quando eu executo o script, nada acontece - sem erros, sem rotação de tela, nada:

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

Alguma idéia de por que isso não está funcionando como esperado?

Obrigado antecipadamente!

    
por mblasco 08.03.2016 / 22:00

1 resposta

1

Solução rápida

A maneira como você define rotation resulta em sua variável contendo o comando escrito do qual você queria extrair a saída.
O que você deseja fazer é usar command substitution para armazenar a saída do seu comando em rotation . Você pode conseguir isso usando rotation=$(xrandr -q ...) ou rotation='xrandr -q ...' .

Plano de fundo

A substituição de comando executa seu comando em uma subshell e armazena sua saída gravada em stdout em sua variável. É uma coisa comum de se fazer, e eu pessoalmente prefiro usar $() .

You can read more on command substitution on the Bash Hackers Wiki.

Usando aspas simples (citações strongs), você diz ao bash para não expandir nada entre aspas. Por exemplo, com a='$FOO' , $a permanece $FOO . Bash deixa o material que você citou intocado e o embaralha diretamente em sua variável.

More on quoting can also be found on the Bash Hackers Wiki.

    
por 09.03.2016 / 19:59