export funkt nicht

heady

heady

Routinier
hi ich hab folgendes script geschrieben, damit ich nicht immer die variable
http_proxy (mit passwort) vor den augen anderen exportieren muss...nun es funktioniert auch, jedoch wird die varible http_proxy nicht exportiert - bzw. ich kann die variable nach dem aufruf des scriptes nicht mehr auslesen
konkret: echo $http_proxy gibt nichts aus...weiß wer warum?

Code:
#!/bin/sh

echo -n "user: "
read user

echo -n "pwd: "
stty -echo
read pwd
stty echo
echo

export http_proxy=http://$user:$pwd@192.168.2.254:3128
 
Ich würde es mit:
echo -n "Text"; read Variablenname
versuchen
 
weis ich nicht, aber so lese ich immer die Variablen ein. Deine Art ist mir Unbekannt.
Das ist mir halt auf dem ersten Blick aufgefallen.
 
ok vl. hab ich zu viel text hier reingeschmirt...
noch mal meine frage...wie schaffe ich es in einem script eine variable zu exportieren, die auch außerhalb des scripts lesbar ist?

also ich mache:
sh script.sh //in dem skript wird die variable exportiert
echo $var //nun gebe ich die variable aus...

nun wie schaffe ich das?? in meinen obigen script funktioniert das nämlich nicht...
 
Hallo

Warum schreibst du die Variablen nicht einfach in deine ~/.bashrc?
Code:
export VAR="FOO_BAR"
Die dort aufgeführten Variablen und Funktionen sind in jeder geöffneten bash des Users verfügbar.

Gruß Wolfgang
 
naja weil diese variable daten wie mein passwort für den proxy enthält...ich will nicht, das da mein pwd in einem file steht...
 
Exportieren kann man eine Variable nur in die Shell-Kinder, nicht aber in die Eltern-Shell.

Gruss, Xanti
 
Hallo
Abgesehen davon, dass ich deinen Einwand nicht verstehe, wie kommst du sonst ohne Nutzereingabe an das Password ran?
So wie du es versuchst geht es jedenfalls nicht.
help export
export: export [-nf] [name[=value] ...] or export -p
NAMEs are marked for automatic export to the environment of
subsequently executed commands. If the -f option is given,
the NAMEs refer to functions. If no NAMEs are given, or if `-p'
is given, a list of all names that are exported in this shell is
printed. An argument of `-n' says to remove the export property
from subsequent NAMEs. An argument of `--' disables further option
processing.
Du kannst die Variablen nur an Subprozesse vererben.

Was du suchst ist
Code:
#!/bin/bash
export VAR1="eintest";
exec /bin/bash
Danach gibt
echo $VAR1
eintest

aus.

Allerdings ist die Variable $VAR1 dann auch auslesbar!

Wenn sie in einer Datei steht, kannst du es über die richtigen Rechte vor dem Zugriff unbefugter schützen.

Gruß Wolfgang
 
vielen dank das wars...die fehlende idee meines hirnes
 

Ähnliche Themen

script sshpass

Queue für copy Script

Last mit etc/passwd anzeigen lassen

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Löschroutine mit Überprüfung

Zurück
Oben