Forum: PC-Programmierung bash-shell: Wie neuen Eingabe-Befehl selbst auslösen.


von Nürnberger (Gast)


Lesenswert?

Hallo,
ich möchte mit einer bash-Eingabe eine weitere/nächste Eingabe selbst 
auslösen.
Hintergrund:
Ich benutze einen Eingabe-Befehl der Form:
1
$ mycommand `xsel -b`
Hinweis: xsel ist ein Befehl, der mir den Inhalt der X-Primary-Selection 
oder des Clipboard wiedergeben kann.

D.h. als Argument wird dem Befehl 'mycommand' mitgegeben, was aktuell im 
Clipboard drinsteht.
Bei der History-Funktion, d.h. wenn ich später die selbe Eingabe 
wiederholen möchte, geht das schief, weil im Clipboard was anderes drin 
steht.
Ich würde etwas haben wollen, dass das "xsel -b" zwar benutzt wird, aber 
dass der Befehl einen 2. Befehl generiert, der dann in der History 
drinsteht, z.B.
1
$ mycommand2 `xsel -b`  #im Clipboard steht "-delete db", nächste Zeil erscheint automatisch
2
$ mycommand -delete db

Man könnte das Problem lösen, indem nicht nicht das Copy/Paste 
Clipboard,
sondern das von X ("Primary Selection", markierter Text), und dann den 
Inhalt gleich in Shell mit der mittleren Maustaste hinkopiert, aber das 
geht nicht, da meine Sub-Befehle von einem Programm kommen, das nur in 
das Clipboard schreiben kann.

von Noch einer (Gast)


Lesenswert?

Unter KDE gibt es ein Klipper - Dienstprogramm für die Zwischenablage.
Hält Primary und Clipboard konsistent. Sollte es doch auch für andere 
Oberflächen geben.

Oder "einfach" xsel -b -o | xsel -i

von Hermann K. (r2d2)


Lesenswert?

1
alias mycommand2='cmd="mycommand `xsel -b`"; history -s "$cmd"; $cmd;'
sollte tun was du willst.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.