
In der Bash-Programmierung ist eine Variable, sagen wir varA
, gegeben, die einen String mit #
dem Symbol speichert. Nehmen wir an, varA
sie enthält diesen Wert: ASD# 1
, ich muss \
am Anfang einen Backslash anhängen #
, damit die Ausgabe so aussehen könnte: ASD\# 1
. Der folgende Code ist ungefähr dazu da, mein Ziel zu erreichen, nur der String-Ersatz scheint nicht zu funktionieren und ich kann die Ausgabe des sed-Befehls nicht einer anderen Variable zuweisen. Irgendwelche Erkenntnisse dazu?
varA="ASD# 1"
echo $(sed s/\#/\\#/g <<< ${varA})
Antwort1
In Ihrem Ausdruck fehlt ein Anführungszeichen sed
.
Versuchen:
$ varA="ASD# 1"
$ echo "$(sed 's/#/\\#/g' <<< "${varA}")"
ASD\# 1
Antwort2
sed
Die Verwendung nur einer Variable verursacht Mehraufwand . In bash
können Sie verwenden ${varA/\#/\\\#}
.