J'ai rencontré un problème plus ennuyeux qui se produit sur la variable PWD
quand le chemin actuel inclut un espace. Mon code ressemble un peu à ceci:Citation de Bash du chemin courant (pwd)
mycommand |sed -E '
s|mystuff|replacement| ;
s|'$(pwd)'|replacement| ;
'
Cela fonctionne très bien, sauf si le chemin courant contient un caractère espace. Dans le cas contraire, $(pwd)
est dilatée à
'mypath/with space'au lieu de simplement
mypath/with space
Cette cause l'expression sed à foiré (à cause des citations supplémentaires):
sed: 1: "s|mypath/with": unterminated substitute pattern
J'ai remarqué que cela n'aide pas à étendre pwd comme ceci: ${PWD//\'/}
.
Des idées sur la façon dont cela peut être résolu?
Est-ce vraiment la commande? Les variables ne sont pas développées à l'intérieur de guillemets simples, donc je ne peux pas voir comment $ (pwd) dans ce qui précède serait expansé du tout. –
Merci d'avoir signalé cela. J'ai ajouté les citations manquantes. –
Avez-vous essayé d'utiliser la variable d'environnement équivalente ($ PWD) au lieu de la substitution de commande pour voir si cela fait une différence? –