Si je dépose un fichier du Finder (ou d'une autre source de fichiers) dans le terminal, le système échappe les caractères comme les espaces : Déposer un fichier nommé /Lorem Ipsum.txt
donne /Lorem\ Ipsum.txt
.
Je voudrais modifier ce comportement pour utiliser des guillemets à la place, de sorte que /Lorem Ipsum.txt
donnerait '/Lorem Ipsum.txt'
à la place (notez les guillemets simples et la barre oblique inversée manquante).
Y a-t-il un moyen de faire cela en utilisant le Terminal.app standard ? Sinon, est-il possible de le faire avec iTerm ou quelque chose d'autre ?
Modifier
La raison pour laquelle je veux faire cela est que j'utilise xonsh qui analyse le backslash comme un caractère littéral, echo /Lorem\ Ipsum.txt
imprime /Lorem\ Ipsum.txt .
La plupart du temps, je supprime manuellement les barres obliques inversées, et parfois j'utilise la solution suivante :
- Entrez
@(r"
- Déposer le fichier - cela remplira une chaîne littérale avec le chemin d'accès en utilisant les caractères d'annulation.
- Entrez
".replace("\\",""))
0 votes
Une solution de contournement : créer un shell script nommé
quote
avec le contenuecho "'$@'"
pour effectuer la conversion.0 votes
Y a-t-il une raison sous-jacente de préférer les guillemets aux caractères d'échappement ou est-ce purement esthétique ?
0 votes
@hlf : En raison de mon shell, le script recevrait plusieurs paramètres.
/Lorem` and
Ipsum.txt`, mais vous avez raison, je pourrais créer un script qui fait la conversion.2 votes
@jaume : La raison sous-jacente est que j'utilise xonsh qui a des règles d'échappement différentes (voir mon édition de la question).
0 votes
@JamesBrickley Pourriez-vous écrire ceci comme une réponse à la question afin que je puisse la signaler comme étant la solution ?