Ich habe eine einzelne Datei Shell-Skript (BusyBox, keine Bash, Ksh ich glaube), dass ich einen Pfad zu sich selbst schreiben möchte, wenn Sie ausgeführt werden. Ich brauche #home durch home =/home ersetzt werden. Ich habe dies:sed inplace Ersatz ersetzt sich
var="/home"
#home
sed -i 's/#home/home=$var/g' /this/file.sh
Wenn er gestartet wird es #Home und die Zeichenfolge in der sed Linie und die $ var erweitert wird nicht ersetzt werden:
var="/home"
home=$var
sed -i 's/home=$var/home=$var/g' /this/file.sh
Das ist mein gewünschtes Ergebnis:
var="/home"
home=/home
sed -i 's/#home/home=$var/g' /this/file.sh
Ich ziehe meine Haare, damit dies funktioniert. Irgendwelche Hinweise?
mich der Beantwortung dieser wie erwartet funktioniert:
var="/home"
#home
sed -i "s|^#home|home=${var}/|g" m.sh
versuchen Sie 'sed -i "s/# home/home = $ var/g"/dies/file.sh' – Sundeep
siehe [sed ersetzen mit Shell-Variablen] (http://stackoverflow.com/documentation/sed/ 1096/Substitution/3519/Substitution-mit-Shell-Variablen # t = 201608300833232824835) für weiterführende Literatur – Sundeep
sed -i 's/^ # home $/home = $ var/g' – pdg