
Ich kann rennen,
svn status |grep -v .jasper$ |cut -d ' ' -f8 |sed '/.*\..*/!d' |xargs ls -altr --color=auto
alles in Ordnung. Aber wenn ich dies als Alias hinzufügen möchte (alias svtr="...") erhalte ich die Fehlermeldung...
-bash: !d': event not found
Irgendwelche Ideen?
Antwort1
Die Verwendung eines Backslashs \
zum Escapen !
sollte funktionieren.
alias svtr="svn status |grep -v .jasper$ |cut -d ' ' -f8 |sed '/.*\..*/\!d' |xargs ls -altr --color=auto"
alias svtr
alias svtr='svn status |grep -v .jasper$ |cut -d '\'' '\'' -f8 |sed '\''/.*\..*/\!d'\'' |xargs ls -altr --color=auto'
Eigentlich wird dadurch nur der Fehler behoben, da ""
die Shell innerhalb von versucht, zu interpretieren !
.
Möglicherweise möchten Sie die Anführungszeichen rückgängig machen (d. h. einfache Anführungszeichen zum Definieren des Alias verwenden, doppelte Anführungszeichen innerhalb des Alias-Befehls verwenden und einfache Anführungszeichen nach Bedarf maskieren).
Antwort2
Das !d
in Ihrem sed
Befehl verursacht dies, da es !
sich um das Bash-History-Erweiterungszeichen handelt. Deaktivieren Sie die History-Erweiterung vorübergehend wie folgt:
set -H
alias svtr="..."
set +H
Das sollte es tun.