#!/bin/bash
start=$(date +%s)
#
# do something
sleep 10
#
#
end=$(date +%s)
seconds=$(echo "$end - $start" | bc)
echo $seconds' sec'
echo 'Formatted:'
awk -v t=$seconds 'BEGIN{t=int(t*1000); printf "%d:%02d:%02d\n", t/3600000, t/60000%60, t/1000%60}'
Невозможно переместить запущенное приложение X Window на другой дисплей, как это определено переменной DISPLAY
, по двум причинам.
Во-первых, трудно изменить среду запущенного процесса и невозможно сделать это надежно и таким образом, чтобы это изменение учитывалось.
Во-вторых, переменная DISPLAY
является только входной, и обычно она учитывается только при запуске приложения. X-приложение вызываетXOpenDisplay
в начале своего запуска, прямо или косвенно, и именно (или, скорее,XTOpenDisplay
)принимает во внимание DISPLAY
(, если это необходимо — используемый X-сервер может быть указан в другие способы ). XOpenDisplay
возвращает указатель на непрозрачную структуру Display
, которая представляет соединение с X-сервером, и это все, что после этого используется для связи с X-сервером. Изменение значения DISPLAY
после этого не будет иметь никакого эффекта; приложение каким-то образом должно понять, что значение изменилось, закрыть свое соединение с X-сервером и открыть новое.
Оба пункта, взятые вместе, означают, что очень сложно даже написать приложение, которое может изменять свое отображение (, потому что оно предназначено для этого ), не говоря уже об изменении отображения, когда приложение этого не ожидает.