ประการแรกไม่มีเหตุผลที่จะลบ อึดอัด
. มันเร็วมาก เสถียร และทำมาเพื่อสิ่งนี้ อย่างไรก็ตาม คำสั่งของคุณนั้นซับซ้อนโดยไม่จำเป็น คุณสามารถทำได้:
$ xrandr -- ปัจจุบัน | awk '$2~/\*/{print $1}'
2560x1440
หากคุณต้องการแยก x และ y ให้ทำดังนี้
x=$(xrandr --current | awk '$2~/\*/{print $1}' | cut -d'x' -f1)
y=$(xrandr --current | awk '$2~/\*/{print $1}' | cut -d'x' -f2)
เสียงสะท้อน "$x"
เสียงสะท้อน "$y"
หรือมากกว่านั้น:
$ อ่าน x y < <(xrandr --current | awk '$2~/\*/{sub(/x/," ");print $1,$2}')
$ echo "x:$x y:$y"
x:2560 ย:1440
และหากคุณยืนยันที่จะไม่ใช้ awk ต่อไปนี้คือตัวเลือกอื่นๆ สองสามตัวเลือก:
อ่าน x y < <(xrandr --current | sed -En '/\*/{s/^ *([0-9]+)x([0-9]+).*/\1 \2/p} ')
เสียงสะท้อน "$x"
เสียงสะท้อน "$y"
หรือ
อ่าน x y < <(xrandr --current | perl -lne 'พิมพ์ "$1 $2" ถ้า /^ *([0-9]+)x([0-9]+).*/')
เสียงสะท้อน "$x"
เสียงสะท้อน "$y"
หรือ
อ่าน x y < <(xrandr --current | grep -oP '\d+x\d+' | tr x ' ')
เสียงสะท้อน "$x"
เสียงสะท้อน "$y"
โปรดทราบว่าทั้งหมดนี้ถือว่ามีการเชื่อมต่อเพียงหน้าจอเดียว เช่นเดียวกับแนวทางดั้งเดิมของคุณ