Ich habe die meisten der angebotenen Lösungen ausprobiert, aber nichts hat zunächst funktioniert. Es stellte sich jedoch heraus, dass es nicht die Lösungen waren, die nicht funktionierten. Offenbar hat mein ~/.bashrc
Datei beginnt mit dem folgenden Codeblock:
case $- in
*i*) ;;
*) return;;
esac
Dies ist im Grunde eine case statement
die den aktuellen Satz von Optionen in der aktuellen Shell überprüft, um festzustellen, dass die Shell interaktiv läuft. Wenn die Shell tatsächlich interaktiv läuft, wird die Suche nach der ~/.bashrc
Datei. In einer Shell, die von cron
die $-
Variable enthält nicht die i
Wert, der die Interaktivität anzeigt. Daher ist der ~/.bashrc
Datei wird nie vollständig ausgelagert. Infolgedessen wurden die Umgebungsvariablen nie gesetzt. Wenn dies Ihr Problem ist, können Sie den Codeblock wie folgt auskommentieren und erneut versuchen:
# case $- in
# *i*) ;;
# *) return;;
# esac
Ich hoffe, dass sich dies als nützlich erweist