Échapper les guillemets doubles avec tcsh alias
Je suis en train de lancer les commandes suivantes:
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
Et ce serait bien si je pouvais juste alias quelque chose de court et simple comme "a", "b", "c", "d", etc...
Cependant, certains de ces arguments ont une citation, qui est gâcher de l'alias. Personne ne sait comment échapper les guillemets? J'ai essayé des choses comme ' \ " et \" mais rien ne semble fonctionner.
Je suis en utilisant tcsh que ma coquille.
Les deux derniers n'ont pas besoin de guillemets. Que penser de l'utilisation des apostrophes à la place des guillemets?
OriginalL'auteur Anton | 2008-12-20
Vous devez vous connecter pour publier un commentaire.
Je l'ai eu à travailler par le stockage de la chaîne avec le double quote dans une variable de chaîne de caractères entourée par des guillemets simples. Lorsque j'utilise la variable I à l'intérieur des guillemets simples.
Exemple:
J'ai testé avec tcsh sur OSX
set q = '""
dans mon alias scripts d'installation. Je peux habituellement trouver comment utiliser une combinaison de",',\,...
correctement les citer, mais en utilisant${q}
est donc beaucoup plus lisible!OriginalL'auteur phi
La suite de tous les travaux en
tcsh
pour réaliser divers résultats:Pour voir comment elles sont interprétées par le shell, exécutez
alias
sans arguments:Rien, entre parenthèses, est exécuté dans un shell interne est exécuté. Ce serait une mauvaise chose si vous essayez de définir des variables d'environnement, mais la plupart du temps inutiles autrement.
Enfin, voici ce que les exemples ne:
OriginalL'auteur Gurn
tcsh
a une nouvelle variablebackslash_quote
. Vous ne savez pas quand il a été ajouté, mais il est pris en charge dans6.18.01
(version OS X El Capitan) et6.19
(dernière version stable au moment de l'écriture). Cela rend possible pour échapper à'
,"
, et`
à l'intérieur des guillemets.Si vous ne souhaitez pas utiliser cette option, vos choix sont limités à l'utilisation d'un autre type de citation autour du symbole
ou non à l'aide de citations et généreusement backslashing choses.
OriginalL'auteur Gregory Nisbet
Si vous ne pouvez pas obtenir un alias de travail, il suffit d'écrire un petit script chmod +x, et la mettre quelque part dans votre $PATH (comme $HOME/bin):
Je n'ai pas d'expérience avec tcsh, mais avec bash comme l'un de ces:
Peut-être quelque chose de semblable travail dans tcsh?
OriginalL'auteur derobert
Il semblerait que la raison pour laquelle
\"
et\'
ne fonctionnent pas comme prévu, c'est quecsh
, traditionnellement, n'ont pas soutenir une telle syntaxe, de sorte que, sitcsh
étaient inconditionnellement pour le soutenir, alors un de ces vieux scripts peuvent ne plus fonctionner du tout.Comme mentionné dans une autre réponse, tcsh lui-même a l'
set backslash_quote
fonction; toutefois, à la différence implicite dans la réponse, ce n'est pas une nouvelle fonctionnalité, c'est juste un tcsh-spécifique, et a été effectivement ajouté à tcsh au moins il y a 27 ans: la fonctionnalité a d'abord été documenté dans la page de manuel àtcsh.l'homme,v 3.8 1991/07/25 04:50:55
, qui peut difficilement être qualifié comme "nouveau".http://mdoc.su/n,f,d/tcsh.1
OriginalL'auteur cnst