Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Was bedeutet der Punkt vor dem Aufruf eines Skripts

Frage Linux

Mitglied: Cubic83

Cubic83 (Level 2) - Jetzt verbinden

08.04.2011 um 08:24 Uhr, 4211 Aufrufe, 6 Kommentare

Hallo,

ich habe hier ein Bash Skript vom Kollegen. Dieses Skript ruft ein weiteres Skript auf und benutzt Variablen aus dem ersten Skript. Wieso kann man im zweiten Skript nur auf die Variablen Zugreifen wenn man das zweite Skript mit einem Punkt startet. Hier ein Beispiel:

Datei 1

01.
 
02.
#!/bin/sh 
03.
 
04.
VARI="Hallo" 
05.
. ./DATEI2.sh 
06.
 
Datei 2
01.
 
02.
#!/bin/sh 
03.
echo $VARI 
04.
 
Ist der Code so geschrieben klappt es. Lass ich den Puntk weg ist $VARI leer ("./DATEI2.sh" anstatt ". ./DATEI2.sh")

Weiss vielleicht jemand wieso das so ist?

Danke schön,
mfG
Mitglied: Crusher79
08.04.2011 um 09:12 Uhr
Hi,

bin leider Bash Noob. Normal gibt aber ein einzelner Punkt das aktuelle Verzeichnis an. Wir sind quasi im akt. Verz und führen mit ./ das 2. Skript aus.
Bitte warten ..
Mitglied: dog
08.04.2011 um 09:38 Uhr
. ist der Include-Befehl in SH (in Bash gibt es auch noch source)
Dadurch wird die Datei praktisch in die andere eingesetzt.
Lässt du das weg wird die andere Datei schlicht aufgerufen und dann sind Variablen nur sichtbar, wenn sie exportiert wurden.
Bitte warten ..
Mitglied: Cubic83
08.04.2011 um 09:54 Uhr
Ah Ok,

wieder was dazu gelernt.

Vielen Dank
mfG
Bitte warten ..
Mitglied: reni09
10.04.2011 um 22:31 Uhr
Ich möchte es mal so erklären.

Normalerweise werden alle Scripte beim Starten in einer Sub-Shell abgearbeitet.
Das heißt, es gelten da nur Variablen, die auch in der Start (oder Vater-)Shell exportiert wurden.

In deinem 1. Script wird VARI aber nicht exportiert und damit diese Variable auch im nächsten Script gültig ist, wird es _ohne_ weitere Sub-Shell aufgerufen.
=> mit dem . wird also _keine_ weitere Sub-Shell aufgerufen, sondern das Script startet in der aktuellen Shell.

Oder Datei 1 so:

01.
#!/bin/sh 
02.
export VARI="Hallo" 
03.
sh ./DATEI2.sh
Bitte warten ..
Mitglied: Cubic83
11.04.2011 um 19:46 Uhr
Hallo,

danke für den Kommentar.

Was bedeutet denn eigentlich exportiert? Wird die Variable dann zu einer Supervariable (also im System definiert) oder ist sie nur im Hauptskript und den Unterskripts (Untershells) definiert?

mfG
Bitte warten ..
Mitglied: Biber
11.04.2011 um 19:56 Uhr
Moin Cubic83,

Letzteres. Die Variable steht in der aktuellen Umgebung (=in der aktuellen Shell-Instanz) zur Verfügung und ist dort sichtbar.
UND in allen "Child"-Instanzen, also neuen Shells (oder Unterprogrammen), die von ihr aufgerufen/neu gestartet werden.

Das darüberliegende "Super"-Environment ist zwar verfügbar (sichtbar), kann aber nicht dauerhaft geändert oder gar gelöscht werden.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Was genau bedeutet
Frage von ImTrainingMicrosoft Office2 Kommentare

Guten Morgen, Weiß einer was diese Fehlermeldung zu bedeuten hat? Sie taucht in einem Programm namens Nova Nota auf ...

Netzwerkprotokolle
SMTP und der Punkt
Frage von StefanKittelNetzwerkprotokolle5 Kommentare

Hallo zusammen, ich beschäftige mich gerade mal wieder mit dem SMTP-Protokoll und bin dabei auf ein Prinzip-Problem gestoßen. Ich ...

Entwicklung
Was bedeutet persistent?
Frage von Heinz0815Entwicklung4 Kommentare

Hi, Was versteht man unter persistent? Z.b. Aufgezeichnete Daten dürfen nicht persistent sein. Grüße Heini

Netzwerkgrundlagen
Frage zu Punkt-zu-Punkt Verbindung und Broadcast-Netz
gelöst Frage von ichigo77Netzwerkgrundlagen3 Kommentare

Hallo, Es geht um die Schicht 2 (Sicherung) im OSI-Model : Bei Punkt-zu-Punkt Verbindungen (z.B. zwischen Telefonanschluss und ISP ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...