画面の状態を読む

画面の状態を読む

Fedora 22では、次のコマンドを使用して画面の回転状態を読みました。

status=$(xrandr --verbose | grep LVDS1 | awk '{print $6}'

出力は似ていますnoramlinverted他のモニター/プロジェクターと画面を共有しても機能します。 Fedora 23にアップデートした後、ノートパソコンを外部モニターまたはプロジェクターに接続するたびに、行の情報が少し変わり、xrandr情報が提供されない$6セクションが表示され、Get Monitorの状態を変更する必要があります。最初の文字をテストし、その場合は別の出力を使用して問題を解決しました。それは、(normal(normal left inverted right x axis y axis)$6$5(

testvalue=$(xrandr --verbose | grep LVDS1 | awk '{print $6}')
[ ${testvalue:0:1} == "(" ] && status=$(xrandr --verbose | grep LVDS1 | awk '{print $5}') || status=$(xrandr --verbose | grep LVDS1 | awk '{print $6}')

これで現在の作業が完了しました。私の質問は、この問題をより安定した方法で解決する方法です。

答え1

xrandr | awk -F'(' '/^LVDS1/{ split($2,a," "); print a[3]}'

xrandrは--verboseなしでこの行を印刷します。

フィールド区切り文字として「(」を使用

/ ^ LVDS1 /に一致する行のみを表示

""を区切り文字として使用して、2番目のフィールドを配列(aという名前)に分割します。

最後に、aの3番目の要素を印刷します。

関連情報