akon68
Goto Top

"insert-last-word" als Alias setzen

Hallo,

ich bekomme es nicht hin !$ als Alias zu setzen. face-sad
Info:
Mit der Eingabe von "!$" in der tcsh (ist bei uns Standard) erhält man das letzte Argument des zuletzt abgesendeten Befehls.

Beispiel:
170$: ping paulPING paul (192.168.1.40) 56(84) bytes of data.64 bytes from paul (192.168.1.40): icmp_seq=1 ttl=59 time=0.449 ms^C--- paul ping statistics ---1 packets transmitted, 1 received, 0% packet loss, time 574msrtt min/avg/max/mdev = 0.449/0.449/0.449/0.000 ms meinpc - walter - /homel/horst - (/bin/tcsh) 171$: !$paulpaul: Befehl nicht gefunden. meinpc - walter - /homel/horst - (/bin/tcsh) 172$:

Das kann man dann so einsetzen:
173$: ping !$ping paulPING paul (192.168.1.40) 56(84) bytes of data.64 bytes from paul (192.168.1.40): icmp_seq=1 ttl=59 time=0.461 m...

Versucht habe ich schon so einiges (bekomme ich leider nicht mehr alles zusammen). Unter anderem:
alias aaa '!$'alias aaa '\!$'alias aaa '\!\$'alias aaa "\!\$"alias aaa \!\$alias aaa echo '!$'alias aaa echo '\!$'alias aaa echo '\!\$'alias aaa echo \!\$alias aaa 'echo \!\$'alias aaa "echo \!\$"

ist auch egal ob ich das per Alias-Befehl versuche oder in der .cshrc eintrage.

Habe schon überlegt ob soetwas vielleicht sinnvoller sein könnte:history | tail -n 2 | grep -v history | awk '{print $NF}'

Irgendwie stehe ich auf dem Schlauch und würde mich freuen wenn mir jemand weiterhelfen könnte.
face-crying

*Scgraibelpfehler korrigiert*

Content-Key: 286903

Url: https://administrator.de/contentid/286903

Ausgedruckt am: 29.03.2024 um 00:03 Uhr

Mitglied: Akon68
Akon68 30.10.2015 um 10:42:11 Uhr
Goto Top
Die akzeptierte Lösung ist:
-> kein Alias!


Tcsh:
1. Folgende Zeile in der ".cshrc" des Anwenders einfügen
bindkey ß insert-last-word
2. tcsh neu starten.
-> fertig

Bash:
1. Im Home des Anwenders die Datei ".inputrc" editieren (ggf. erst anlegen).
2. Folgende Zeile einfügen:
"ß": yank-last-arg
3. Bash neu starten
-> fertig

Damit wird nun kein Alias erzeugt sondern die (kaum genutzte) ß-Taste mit der Funktion "insert-last-word" bzw. "yank-last-arg" belegt.
Mit druck auf die Taste erscheint somit nicht mehr der Buchstabe "ß" sondern letzte Wort/Argument des zuletzt abgesendeten Befehls.


face-smile
Eigentlich doch ganz simpel. ;)

Folgende Seiten halfen mir bei der Suche nach der Lösung (das sind wenigstens die an die ich mich erinnere face-wink ):
http://www.selectorweb.com/unix_tcsh.html#intro
http://www.tcsh.org/tcsh.html/Builtin_commands.html
http://www.pro-linux.de/kurztipps/2/1256/tasten-mit-kommandos-belegen.h ...
https://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Com ...
Mitglied: Akon68
Akon68 06.11.2015 um 16:03:28 Uhr
Goto Top
Die Lösung die vom Kunden akzeptiert wurde ist kein Alias.

Bash:
1. Im Home des Anwenders die Datei ".inputrc" editieren (ggf. erst anlegen).
2. Folgende Zeile einfügen:
"ß": yank-last-arg
3. Bash neu starten
-> fertig

Tcsh:
1. Folgende Zeile in der ".cshrc" des Anwenders einfügen
bindkey ß insert-last-word
2. tcsh neu starten.
-> fertig

Anschliessend erhielt der Kunde mittels de "ß"-Taste das jeweils letzte Argument des letzten Befehles (anstelle des "ß"-Zeichens).
Quellen:
http://www.selectorweb.com/unix_tcsh.html#intro
http://www.tcsh.org/tcsh.html/Builtin_commands.html
http://www.pro-linux.de/kurztipps/2/1256/tasten-mit-kommandos-belegen.h ...
https://www.gnu.org/software/bash/manual/html_node/Bindable-Readline-Com ...