Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
ren22
Beitrag
von ren22 » 26.01.2018 21:38:43
Hallo,
warum bekomme ich "xdotool: Unknown command: 1" ausgeworfen, wenn ich den code aus dem erste "case" nehme?
Code: Alles auswählen
case "$1" in
bla)
xdotool mousemove --sync "$gm1_xy" click 1
;;
esac
und warum muss man doppelt quoten das kein Fehler ausgegeben wird?
Code: Alles auswählen
case "$1" in
bla)
xdotool mousemove --sync ""$gm1_xy"" click 1
;;
esac
Zuletzt geändert von ren22 am 26.01.2018 22:37:23, insgesamt 1-mal geändert.
-
tobo
- Beiträge: 2367
- Registriert: 10.12.2008 10:51:41
Beitrag
von tobo » 26.01.2018 21:51:12
Du quotest nicht zweimal, sondern gar nicht (Quote auf/zu Variable quote auf/zu). Also einfach alle weglassen. Verlangt werden wohl 2 Parameter, x und y. Wenn Du quotest übergibst du nur einen.
-
ren22
Beitrag
von ren22 » 26.01.2018 21:57:08
achso,
ja na klar, richtig, Denkfehler, dachte es genügt, wenn in der Variable
steht ...
dann werde ich das mal zerglegen in variablen ... ala
xdotool mousemove --sync "$1gm" "$x" "$y" click 1
Danke
-
Meillo
- Moderator
- Beiträge: 9241
- Registriert: 21.06.2005 14:55:06
- Wohnort: Balmora
-
Kontaktdaten:
Beitrag
von Meillo » 26.01.2018 22:21:49
Bitte noch den Thread auf erledigt setzen.
Use ed once in a while!
-
tobo
- Beiträge: 2367
- Registriert: 10.12.2008 10:51:41
Beitrag
von tobo » 26.01.2018 22:26:19
ren22 hat geschrieben: 26.01.2018 21:57:08
dann werde ich das mal zerglegen in variablen ... ala
xdotool mousemove --sync "$1gm" "$x" "$y" click 1
Kannste natürlich machen. Ich dachte jetzt aber eher an Variante 2, nur vor und hinter der Variablen alle " einfach weglassen. Und die Zuweisung gequotet belassen.
-
ren22
Beitrag
von ren22 » 26.01.2018 22:38:59
Zuletzt geändert von ren22 am 26.01.2018 22:49:20, insgesamt 1-mal geändert.
-
tobo
- Beiträge: 2367
- Registriert: 10.12.2008 10:51:41
Beitrag
von tobo » 26.01.2018 22:48:30
Ne, so:
Code: Alles auswählen
gm1_xy="100 100"
...
xdotool mousemove --sync $gm1_xy click 1
Wobei, wenn das ungequotet da rumsteht, fragt man sich später irgendwann, wieso das nicht gequotet ist!? Ich nehme alles zurück: 2 Variablen und beide (unnötig) quoten ist besser/lesbarer.
Code: Alles auswählen
x=100
y=100
...
xdotool mousemove --sync "$x" "$y" click 1
-
owl102
Beitrag
von owl102 » 26.01.2018 23:21:46
tobo hat geschrieben: 26.01.2018 22:48:30
Wobei, wenn das ungequotet da rumsteht, fragt man sich später irgendwann, wieso das nicht gequotet ist!?
Dann schreibt man eben
darüber, dann weiß man, daß das so gewollt ist.
-
breakthewall
- Beiträge: 507
- Registriert: 30.12.2016 23:48:51
Beitrag
von breakthewall » 26.01.2018 23:40:07
Alternativ kannst auch ein Array verwenden, was hinsichtlich mehrerer (auch positionaler) Parameter recht praktisch wäre. Dann kannst ebenfalls deine Doublequotes setzen, und umgehst somit das Problem einer regulären Variable in diesem Anwendungsfall.
Code: Alles auswählen
gm1_xy=(100 100)
xdotool mousemove --sync "${gm1_xy[@]}" click 1