Ich versuche, eine Umgebungsvariable in einem Bash-Skript zu verwenden, das als sudo
mit source
ausgeführt werden muss.Wohin ging meine Umgebungsvariable?
Ich habe die folgende Datei (my_file.sh)
echo "this is DOMAIN = $DOMAIN"
Ich habe die DOMAIN
Umgebungsvariable in meiner Sitzung ..
und ich brauche jetzt
sudo -E bash -c "source ./my_file.sh"
laufen, aber Der Ausgang zeigt den Wert für $DOMAIN
nicht an. stattdessen ist es leer.
wenn ich den Befehl ändern
sudo -E bash -c "echo $DOMAIN"
ich den richtigen Wert zu sehen sein ..
, was mache ich falsch?
Ich habe total vermisst, dass du schon '-E' benutzt hast. Sind Sie sicher, dass Sie in diesem Fall die Variable exportiert haben? – larsks
Im zweiten Beispiel wird '$ DOMAIN' um die aktuelle Shell * erweitert * bevor *' sudo' ausgeführt wird. – chepner
OMG .. es hat nicht exportiert !! Ich schwöre, dass der Export vorher da war. –