Ich werde zuerst sagen, dass ich nicht sicher bin, ob dies hier oder SuperUser sein sollte, also lassen Sie mich wissen, wenn ich entfernen muss.Warum erstellt dieses Skript eine doppelte Datei und fügt `-e` hinzu?
Ich mache eine Funktion innerhalb ~./bash_profile
, um mir zu helfen, wenn ich neue Laravel-Projekte starte. Hier ist das Skript:
function bootlaravel {
PROJECT=$1
echo "Magically creating a new Laravel project: $PROJECT..."
cd /Applications/MAMP/htdocs
laravel new $PROJECT
cd $PROJECT
git init
git add .
git commit -m "Install Laravel"
sed -i -e "s/DB_DATABASE=homestead/DB_DATABASE=$PROJECT/g" .env
sed -i -e "s/DB_USERNAME=homestead/DB_USERNAME=root/g" .env
sed -i -e "s/DB_PASSWORD=secret/DB_PASSWORD=/g" .env
/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot -e "create database $PROJECT DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci"
open "http://$PROJECT.dev"
pstorm .
echo "Project: $PROJECT has been created. Have fun!"
}
Verbrauch ist so etwas wie bootlaravel LaravelProjectName
Wo die sed
Befehle verwendet werden, um die .env
-Datei zu ändern, es ist eigentlich eine .env-e
Datei als Geschwister zu der bestehenden .env
Datei. Ich kann nicht wirklich verstehen, warum es so ist. Es ändert die Wörter jedoch wie gewünscht.
Jede Hilfe ist
geschätzt
Dies ist eine Aufnahme im Dunkeln, aber versuchen Sie 'sed -ie' statt' sed -i -e'? Da "-i" die Erweiterung ändert und "-e" hinzugefügt wird, vermute ich, dass das Problem besteht. –
@CormacO'Brien fast, jetzt heißt es '.enve' haha –
Wollen Sie Backups? Das ist die Idee mit 'sed -i', und die Flagge erfordert eine Erweiterung von nicht-Null Länge. Wenn nicht, einfach die '-i'-Flagge fallen lassen, ansonsten geben Sie eine Erweiterung wie '.bak'. –