Disons que je dois utiliser des guillemets pour encapsuler la sortie du sous-shell comme:
DATA="$(cat file.hex | xxd -r)"
Mais je dois imbriquer ce genre de choses comme:
DATA="$(cat file.hex | xxd -r | tr -d \"$(cat trim.txt)\")"
Je ne peux pas utiliser de guillemets simples car ceux-ci ne développent pas les variables qui sont à l'intérieur d'eux. Les guillemets d'échappement ne fonctionnent pas, car ils sont simplement traités comme du texte passif.
Comment dois-je gérer cela?
DATA="$(cat file.hex | xxd -r | tr -d "$(cat trim.txt)")"
?Réponses:
Vous n'avez pas besoin d'échapper les guillemets à l'intérieur d'un sous-shell, car le shell actuel ne les interprète pas (il n'interprète rien de
$(
à)
, en fait), et le sous - shell ne connaît pas les guillemets ci-dessus.Il n'est pas nécessaire non plus de citer un sous-shell lors de l'affectation de variables, pour plus d'informations, voir
man bash
.la source
Vous n'avez pas besoin d'échapper aux citations imbriquées à l'intérieur. Ils sont analysés correctement, étonnamment!
la source