Ich habe ein Bash-Skript, das die Anzahl der Compiz-Ansichtsfenster berechnet und abhängig von dieser Anzahl Variablenwerte für jedes Ansichtsfenster definiert, um den Sprung zu diesem Ansichtsfenster zu ermöglichen.Variablenwert im Variablennamen mit bash
wmctrl -d
0 * DG: 19200x2160 VP: 0,0 WA: 0,38 3840x2084 Workspace 1
Dieser Ausgang sagt mir die Gesamtfläche Ansichtsfenster 19200
wmctrl -d | awk '{print $4}' | sed -e 's/x..*//'
19200
und jedes Ansichtsfenster 3840 in Größe
wmctrl -d | awk '{print $9}' | sed -e 's/x..*//'
3840
daher die Gesamtzahl der Ansichtsfenster ist 19200/3840 oder in Diese Instanz 5
was ich jetzt tun möchte, ist eine Anzahl von Variablen auffüllen (maximale Gesamtanzahl r der Ansichtsfenster) mit dem Wert dieser Ansichtsfensterposition. In dem obigen Beispiel gibt es 5 Ansichtsfenster so: -
VIEWPORT(1 2 3 4 5)
3840, 7680, 11520, 15360, 19200
dann
mitwmctrl -o $VIEWPORT(x),0
(Above editierten zu zeigen, dass $ ANSICHTSFENSTER (x) ist eigentlich eine Variable, machte ich es nicht klar ursprünglich, also der tatsächliche Wert von sagen $ VIEWPORT3 wäre 11520, sorry mein schlechtes in der ursprünglichen Frage)
bringt uns zu diesem Ansichtsfenster.
Die Sache, mit der ich mich bemühe, ist, dass die Anzahl der erforderlichen Variablen von der Anzahl der zu Beginn identifizierten Ansichtsfenster abhängt.
Ich habe ein wenig über Arrays gelesen, kann aber keinen einfachen Weg sehen, ein Array zu verwenden, um diese Arbeit zu machen (mein Mangel an Vertrautheit).
So alle Vorschläge, wie dies zu tun wäre, würden geschätzt.
Warum nicht eine Funktion anstelle einer Variablen? – mouviciel
Führt 'wmctrl -o VIEWPORT (2), 0' zum zweiten Ansichtsfenster oder tut' wmctrl -o VIEWPORT (7680), 0'? –
Ich hätte vielleicht in meiner ursprünglichen Beschreibung klarer sein sollen. wmctrl -o 19200,0 würde Sie zum Viewport 5 so auf Ihre Frage zu beantworten ... wmctrl -o $ VIEWPORT5 (die den Wert 19200 enthalten sollte), 0 wäre die Art, wie ich es versuche. – anothers