Escaping von Anführungszeichen mit tcsh-alias
Ich versuche, führen Sie die folgenden Befehle:
replace -x "must " A2input.txt
replace -x " a" -f -s ## A2input.txt
replace -x to -s ## -a A2input.txt
replace -x faith -f "unequivocal" A2input.txt
Und es wäre schön, wenn ich könnte nur alias es etwas kurz und einfach wie "a", "b", "c", "d", usw...
Jedoch einige dieser Argumente haben ein Angebot, das Durcheinander des alias. Weiß jemand, wie eigentlich die Flucht der doppelten Anführungszeichen? Ich habe versucht, Dinge wie ' \ "" und \" aber nichts scheint zu funktionieren.
Ich bin mit tcsh als meine shell.
Die letzten beiden brauchen nicht zitiert. Was über die Verwendung von single-quotes statt double quotes?
InformationsquelleAutor Anton | 2008-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe es zu arbeiten, indem die Zeichenfolge mit doppelten Anführungszeichen in eine variable mit dem string in einfache Anführungszeichen gesetzt. Wenn ich die variable I in einfache Anführungszeichen gesetzt werden.
Beispiel:
Getestet habe ich diese mit tcsh auf OSX
set q = '""
in mein alias setup-Skripts. Ich kann in der Regel herausfinden, wie die Verwendung einer Kombination von",',\,...
ordnungsgemäß zu zitieren, aber mit${q}
ist so viel besser lesbar!InformationsquelleAutor phi
Den folgenden arbeiten alle in
tcsh
zu erreichen verschiedene Ergebnisse:Um zu sehen, wie diese von der shell interpretiert, ausgeführt
alias
ohne Argumente:Alles, was in Klammern angegeben ist die Ausführung in einer subshell. Dies wäre schlecht, wenn Sie versuchen, zum festlegen von Umgebungsvariablen, aber weitgehend irrelevant, sonst.
Schließlich, hier ist, was die Beispiele eigentlich tun:
InformationsquelleAutor Gurn
tcsh
hat eine neuere variablebackslash_quote
. Nicht sicher, wenn es Hinzugefügt wurde, aber es unterstützt in6.18.01
(version auf OS X El Capitan) und6.19
(Letzte stabile Version zum Zeitpunkt des Schreibens). Dies macht es möglich, zu entkommen'
,"
, und`
innerhalb von Anführungszeichen.Wenn Sie nicht wollen, um diese option zu verwenden, Ihre Entscheidungen sind begrenzt, um mit einer anderen Art von Zitat, um das symbol
ist oder nicht anhand von Zitaten und reichlich backslashing Dinge.
InformationsquelleAutor Gregory Nisbet
Wenn Sie nicht bekommen kann ein alias zu arbeiten, schreiben Sie einfach ein kurzes shell-Skript, chmod +x, und legen Sie Sie irgendwo in Ihrem $PATH $HOME/bin):
Ich habe keine Erfahrung mit tcsh, aber mit bash du es so machst wie diesen:
Vielleicht so etwas ähnliches funktioniert auch in tcsh?
InformationsquelleAutor derobert
Es scheint, dass der Grund dafür, dass
\"
und\'
nicht so funktionieren, wie Sie erwarten, ist, dasscsh
traditionell nicht unterstützen, wie syntax, so dass, wenntcsh
waren, bedingungslos zu unterstützen, dann solche älteren Skripten möglicherweise nicht mehr richtig funktioniert.Wie bereits erwähnt in einer anderen Antwort, tcsh selbst hat die
set backslash_quote
- Funktion, aber im Gegensatz zu den implizit in der Antwort erwähnt, ist dies kaum ein neues feature, es ist nur eine tcsh-spezifische und wurde tatsächlich Hinzugefügt tcsh zumindest einige vor 27 Jahren — das feature wurde erstmals dokumentiert im Handbuch Seite(tcsh.Mann,v-3.8 1991/07/25 04:50:55
, die kaum qualifiziert es als "neu".http://mdoc.su/n,f,d/tcsh.1
InformationsquelleAutor cnst