ubuntuusers.de

Source im laufendem Betrieb anpassen und nutzen?

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

EricBerne

Anmeldungsdatum:
13. Juli 2014

Beiträge: 274

Hallo alle zusammen,

aktuell versuche ich .bashrc durch einen Skript anzupassen.

Sprich mein Skript: init.sh ändert die .bashrc

1
2
3
4

echo 'export http_proxy="http://xxxxxxxxxxxxxxx/"' >> .bashrc
echo 'export https_proxy="http://xxxxxxxxxxxxxxx/"' >> .bashrc
echo 'export no_proxy="xxxxxxxxxxxxxxxxxx"' >> .bashrc

dann versuche ich es mit:

1
source ~/.bashrc 

Die Datei um laufendem betrieb einzulesen und gleich nutzbar machen, leider ohne Erfolg.

Kann mir jemand sagen wie ich das besser machen kann? bzw. was mache ich falsch?

Danke im Voraus

fork991

Anmeldungsdatum:
26. Mai 2010

Beiträge: 58

Dein Vorgehen sollte grundsätzlich zum Erfolg führen.

Wie ich so vorgehen würde, um schrittweise den Fehler zu finden:

  • In der manpage von Bash das source Kommando nochmal nachlesen

  • Statt .bashrc eine andere, leere Datei verwenden und das damit ausprobieren

  • Wenn der vorige Punkt nochmal mit der .bashrc arbeiten und als erste Zeile temporär ein "set -x" einfügen, um zu sehen, was in der .bashrc genau passiert, wenn diese per source aufgerufen wird.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

EricBerne schrieb:

1
2
3
4

echo 'export http_proxy="http://xxxxxxxxxxxxxxx/"' >> .bashrc
echo 'export https_proxy="http://xxxxxxxxxxxxxxx/"' >> .bashrc
echo 'export no_proxy="xxxxxxxxxxxxxxxxxx"' >> .bashrc

Dann wird deine .bashrc aber ziemlich schnell ziemlich lang. Eventuell wäre sed eine bessere Möglichkeit.

Sind die Einträge in der .bashrc denn korrekt? Was ergibt nach dem source-Befehl ein env | grep proxy?

EricBerne

(Themenstarter)

Anmeldungsdatum:
13. Juli 2014

Beiträge: 274

Danke für die Antwort.

Habe einfach in der ersten Zeile folgendes hinzugefügt.

1
#!/bin/bash -i

Besser gesagt den -i Parameter. Für Interactive

Und sehe da. es geht.

Grüße

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13210

Noch ein paar Gedanken: ich würde das anders angehen.

  1. Die Daten für den Proxy würde ich in einer separaten Datei halten, weil eine Änderung an der ~/.bashrc, die schief geht, ziemlich unangenehme Folgen haben kann.

  2. In der ~/.bashrc eine Zeile [ -r ~/.http-proxy ] && . ~/.http-proxy

  3. In der ~/.bashrc eine Shell-Funktion set_proxy() { echo "export http_proxy='http://$1/'; export https_proxy='http://$1/'; export no_proxy='...'" >~/.http-proxy && . ~/.http-proxy; }

  4. Jetzt kannst Du in jeder interaktiven Shell über set_proxy mein.proxy.com den Proxy umsetzen.

Antworten |