2017-07-24 4 views
0

Ich arbeite an einem meiner ersten Bash-Skripte auf Mac. Mein Ziel ist lesen Sie den Namen meiner Git-Zweig, speichern Sie es in die Terminal-Variable PR_TITLE und ersetzen Sie schließlich den Platzhalter pull_request_name mit der Variablen $PR_TITLE mit sed -i.Bash sed Befehl ersetzen durch Ausgabe eines Befehls

Unten sind die Terminalbefehle, die ich ausführe. Das Festlegen der Variablen funktioniert einwandfrei, aber ich kann den Platzhalter nicht durch die Variable ersetzen. Derzeit gibt bash folgendes aus, wenn ich meinen sed-Befehl ausführe. -bash: feature/issues-5-6: No such file or directory

PR_TITLE=$(git branch | grep \* | tr -d '*') 

sed -i '' "s/\pull_request_name/$($PR_TITLE)/" /Users/$USER/Desktop/PR_File.txt 

Antwort

2

Sie verwenden innerhalb Zitat " bash Befehl Substitution Befehl $(command). Um dies zu vermeiden, müssen Sie zuerst $ angeben.

sed -i '' "s/\pull_request_name/\$($PR_TITLE)/" /Users/$USER/Desktop/PR_File.txt 
+0

Ich bin mir nicht sicher, ob ich dir folge. Wollen Sie sagen, dass mein Befehl eine Änderung an den Anführungszeichen benötigt, so wie 'sed -i' '"s/\ pull_request_name /" $ ($ PR_TITLE) "/"/Benutzer/$ USER/Desktop/PR_File.txt' – VirtualProdigy

+0

Der Befehl Sie haben einen Ersatzfehler "sed: 1:" s/\ pull_request_name/$ (... ": bad flag im Ersatzbefehl: 'i'' – VirtualProdigy

+0

Wahrscheinlich habe ich mich geirrt. Versuchen Sie' sed -i' 's/\ pull_request_name/$ PR_TITLE/"/ Benutzer/$ USER/Desktop/PR_File.txt' und überprüfen Sie, ob es was Sie brauchen. – komar

Verwandte Themen