次のようなxrandr出力があります
HDMI1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 480mm x 270mm
1920x1080 60.00*+ 50.00 59.94
1920x1080i 60.00 50.00 59.94
1680x1050 59.88
1400x1050 59.95
1600x900 60.00
1280x1024 75.02 60.02
1440x900 59.90
1280x800 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x480 60.00 59.94
640x480 75.00 60.00 59.94
720x400 70.08
HDMI2 disconnected (normal left inverted right x axis y axis)
VGA1 connected 1600x900+1920+0 (normal left inverted right x axis y axis) 440mm x 250mm
1600x900 60.00*+
1440x900 59.89
1280x800 59.81
1152x864 75.00
1280x720 60.00
1024x768 75.03 60.00
832x624 74.55
800x600 75.00 60.32 56.25
640x480 75.00 59.94
720x400 70.08
上記のxrandrの結果から利用可能な解像度を取得するために、bashスクリプトを作成する方法。
たとえば、the-script HDMI1
は出力のみ
HDMI1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 480mm x 270mm
1920x1080 60.00*+ 50.00 59.94
1920x1080i 60.00 50.00 59.94
1680x1050 59.88
1400x1050 59.95
1600x900 60.00
1280x1024 75.02 60.02
1440x900 59.90
1280x800 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 75.03 60.00
800x600 75.00 60.32
720x576 50.00
720x480 60.00 59.94
640x480 75.00 60.00 59.94
720x400 70.08
私が試してみました
xrandr | awk '/HDMI1.*?/,/.*connected [0-9].*/'
結果は私が望むものに近いですが、
xrandr | awk '/VGA1.*?/,/.*connected [0-9].*/'
vGA1出力の下で解像度をリストしません。
どんな助けも感謝します、ありがとう。
スクリプト用のawkコマンドのより単純なバージョン:
xrandr |
awk -v monitor="^$MONITOR connected" '/connected/ {p = 0}
$0 ~ monitor {p = 1}
p'
下から上:
p
は、真か偽かに応じてデフォルトのアクション(印刷)を実行するようにawkに指示します)p
をtrueに設定しますp
をfalseに設定しますさて、それを理解し、
#!/bin/bash
#usage the-script XRANDR_OUTPUT_NAME
#e.g the-script HDMI1
MONITOR=$1;
xrandr | grep -v disconnected | \
awk '{
if(/^'$MONITOR' connected/) {
print $0;
m="t";
} else if(m == "t"){
if (/^[a-zA-Z]/){
exit
} else {
print $0
}
}
}'
これが何らかの助けになることを願っています。
GNU awkの場合:
#!/bin/sh
xrandr --query | gawk -v monitor="$1" '
$0 ~ monitor && $0 !~ /disconnected/ {
do {print}
while (getline > -1 && $0 ~ /^[[:blank:]]/)
}
'
使用法:
$ ./the_script LVDS-1
LVDS-1 connected primary 1440x900+0+0 (normal left inverted right x axis y axis) 303mm x 190mm
1440x900 60.00*+ 59.89 50.00
1360x768 59.80 59.96
1152x864 60.00
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
960x600 60.00
960x540 59.99
800x600 60.00 60.32 56.25
840x525 60.01 59.88
800x512 60.17
700x525 59.98
640x512 60.02
720x450 59.89
640x480 60.00 59.94
680x384 59.80 59.96
576x432 60.06
512x384 60.00
400x300 60.32 56.34
320x240 60.05
GNU awkがない場合は、[[:blank:]]
を[ \t]
に置き換える必要がある場合があります