Вы можете использовать xdotool
, который может имитировать ввод с клавиатуры / мыши, управление окнами и многое другое.
См. Сценарий example.sh
для xcalc "4 * 9 ="
, чтобы просмотреть изображение результата захвата:
#!/usr/bin/env bash
save="$DISPLAY" # save original X display number
export DISPLAY=:44 # set random choosen display for xvfb
case "$1" in # and x-programs called below
start) Xvfb $DISPLAY & ;; # starting xvfb server on :44
calc) xcalc & ;; # run x-calculator
xdo) xdotool mousemove 1 1 click 1 # focus with click on x:y=1:1
xdotool key 4 asterisk 9 # calc 4*9
xdotool key equal ;; # =
show) #capture root window ('36' result image) and display it to saved Xno
xwd -root | xwud -display $save & ;;
stop) ps auxww | grep "Xvfb $DISPLAY" | awk '{print $2}' | xargs kill ;;
all) DISPLAY=$save; $0 start; $0 calc; sleep 1; $0 xdo; $0 show; $0 stop ;;
esac
Примечание: отдельные параметры могут использоваться для тестирования или запустить все с помощью ./ example.sh all
.
Альтернативным способом является определение выходного формата OFMT="%5.2f%%"
для форматирования всего числового вывода:
$ awk -v OFMT="%5.2f%%" '
$1 == "cpu" {
print( "Used Cpu: ", 100*($2+$4)/($2+$4+$5) )
print( "Free Cpu: ", 100*$5/($2+$3+$4+$5) )
}
' /proc/stat
Used Cpu: 9.52%
Free Cpu: 90.48%
Обзор кода:
Например:
awk '$1 == "cpu" {
printf "Used Cpu: %5.2f%%\n", 100*($2+$4)/($2+$4+$5)
printf "Free Cpu: %5.2f%%\n", 100*$5/($2+$3+$4+$5)
}' /proc/stat
, который выводит красиво выровненный
Used Cpu: 5.34%
Free Cpu: 94.63%