У меня есть сценарий bash, который вычисляет количество витков Compiz, а затем зависит от этого числа, определяет значения переменных для каждого окна просмотра, чтобы разрешить переход к этому окну просмотра.Переменная значение в имени переменной с использованием bash
wmctrl -d
0 * DG: 19200x2160 VP: 0,0 WA: 0,38 3840x2084 Workspace 1
Этот вывод говорит мне общая площадь видового экрана 19200
wmctrl -d | awk '{print $4}' | sed -e 's/x..*//'
19200
и каждый из окна просмотра 3840 в размере
wmctrl -d | awk '{print $9}' | sed -e 's/x..*//'
3840
поэтому общее число видовых является 19200/3840 или этот пример 5
Что я сейчас хочу сделать, это заполнить ряд переменных (максимальное общее число r видовых экранов) со значением этого местоположения в окне просмотра. В приведенном выше примере есть 5 видовых так: -
VIEWPORT(1 2 3 4 5)
3840, 7680, 11520, 15360, 19200
затем с помощью
wmctrl -o $VIEWPORT(x),0
(выше отредактированный, чтобы показать, что $ VIEWPORT (х) на самом деле является переменной, я не сделал это ясно изначально, поэтому фактическое значение, скажем, $ VIEWPORT3, было бы 11520, извините, мой плохой в исходном вопросе)
ведет нас к этому окну просмотра.
Вещь, с которой я борюсь, заключается в том, что, поскольку количество переменных требуется, зависит от количества видовых экранов, идентифицированных в начале.
Я немного читал о массивах, но не вижу простого способа использовать массив для выполнения этой работы (мое отсутствие знакомости).
Так что любые предложения относительно того, как это сделать, будут оценены.
Почему не функция вместо переменной? – mouviciel
Использует ли 'wmctrl -o VIEWPORT (2), 0' переход во второй видовой экран или' wmctrl -o VIEWPORT (7680), 0'? –
Я должен был быть более ясным в своем первоначальном описании. wmctrl -o 19200,0 перенесет вас в окно просмотра 5 так, чтобы ответить на ваш вопрос ... wmctrl -o $ VIEWPORT5 (который должен содержать значение 19200), 0 будет таким, каким я пытаюсь это сделать. – anothers