webentwicklung-frage-antwort-db.com.de

Festlegen von Umgebungsvariablen unter Linux mithilfe von Bash

In tcsh funktioniert das folgende Skript:

#!/bin/tcsh
setenv X_ROOT /some/specified/path

setenv XDB    ${X_ROOT}/db
setenv PATH   ${X_ROOT}/bin:${PATH}

xrun -d xdb1 -i $1 > $2

Was ist das Äquivalent zum tcsh setenv Funktion in Bash?

Gibt es ein direktes Analogon? Die Umgebungsvariablen dienen zum Auffinden der ausführbaren Datei.

68
pbh101

export VAR=value Setzt VAR auf den Wert. Setzen Sie es in einfache Anführungszeichen, wenn Sie Leerzeichen wie export VAR='my val' Wünschen. Wenn die Variable interpoliert werden soll, verwenden Sie doppelte Anführungszeichen wie export VAR="$MY_OTHER_VAR".

104
mipadi

Der Grund, warum Leute oft das Schreiben vorschlagen

VAR=value
export VAR

statt der kürzeren

export VAR=value

ist, dass die längere Form in mehr verschiedenen Schalen als die kurze Form funktioniert. Wenn Sie wissen, dass Sie es mit bash zu tun haben, funktioniert das natürlich auch.

33
zaphod

Setzen Sie eine lokale und Umgebungsvariable mit Bash unter Linux

Suchen Sie nach einer lokalen oder Umgebungsvariablen für eine Variable mit dem Namen LOL in Bash:

[email protected] /home/el $ set | grep LOL
[email protected] /home/el $
[email protected] /home/el $ env | grep LOL
[email protected] /home/el $

Sanity Check, keine lokale oder Umgebungsvariable namens LOL.

Setzen Sie eine lokale Variable namens LOL in local, aber nicht environment. Setzen Sie sie also:

[email protected] /home/el $ LOL="so wow much code"
[email protected] /home/el $ set | grep LOL
LOL='so wow much code'
[email protected] /home/el $ env | grep LOL
[email protected] /home/el $

Die Variable 'LOL' existiert in lokalen Variablen, jedoch nicht in Umgebungsvariablen. LOL verschwindet, wenn Sie das Terminal neu starten, sich abmelden/anmelden oder exec bash Ausführen.

Setzen Sie eine lokale Variable und löschen Sie dann alle lokalen Variablen in Bash

[email protected] /home/el $ LOL="so wow much code"
[email protected] /home/el $ set | grep LOL
LOL='so wow much code'
[email protected] /home/el $ exec bash
[email protected] /home/el $ set | grep LOL
[email protected] /home/el $

Sie können auch einfach die eine Variable entfernen:

[email protected] /home/el $ LOL="so wow much code"
[email protected] /home/el $ set | grep LOL
LOL='so wow much code'
[email protected] /home/el $ unset LOL
[email protected] /home/el $ set | grep LOL
[email protected] /home/el $

Lokale Variable LOL ist weg.

Heraufstufen einer lokalen Variablen zu einer Umgebungsvariablen:

[email protected] /home/el $ DOGE="such variable"
[email protected] /home/el $ export DOGE
[email protected] /home/el $ set | grep DOGE
DOGE='such variable'
[email protected] /home/el $ env | grep DOGE
DOGE=such variable

Beachten Sie, dass beim Exportieren sowohl eine lokale als auch eine Umgebungsvariable angezeigt wird.

Die exportierte Variable DOGE überlebt einen Bash-Reset:

[email protected] /home/el $ exec bash
[email protected] /home/el $ env | grep DOGE
DOGE=such variable
[email protected] /home/el $ set | grep DOGE
DOGE='such variable'

Alle Umgebungsvariablen entfernen:

Sie müssen eine Dose Chuck Norris herausnehmen, um alle Umgebungsvariablen ohne Abmelden/Anmelden zurückzusetzen:

[email protected] /home/el $ export CAN="chuck norris"
[email protected] /home/el $ env | grep CAN
CAN=chuck norris
[email protected] /home/el $ set | grep CAN
CAN='chuck norris'
[email protected] /home/el $ env -i bash
[email protected] /home/el $ set | grep CAN
[email protected] /home/el $ env | grep CAN

Sie haben eine Umgebungsvariable erstellt und dann das Terminal zurückgesetzt, um sie zu entfernen.

Oder Sie können eine Umgebungsvariable wie folgt manuell setzen und entfernen:

[email protected] /home/el $ export FOO="bar"
[email protected] /home/el $ env | grep FOO
FOO=bar
[email protected] /home/el $ unset FOO
[email protected] /home/el $ env | grep FOO
[email protected] /home/el $
27
Eric Leschinski

VAR=value setzt VAR auf Wert.

Nachdem export VAR wird es auch untergeordneten Prozessen geben.

export VAR=value ist eine Abkürzung für beides.

11
iny

Ich glaube, Sie suchen nach export - obwohl ich mich irren könnte. Ich habe noch nie mit tcsh gespielt. Verwenden Sie die folgende Syntax:

export VARIABLE=value
7
Oli