Grundlegende Syntaxerklärung für Variablen in bashrc

Grundlegende Syntaxerklärung für Variablen in bashrc

Ich möchte eine Variable korrekt exportieren. Dazu muss ich verschiedene Syntaxvarianten kennen. Ich habe die folgenden Mechanismen zum Exportieren einer Variable gesehen. In diesem Fall verwende ich .bashrc:

  1. export MY_VARIABLE=$USER/.gradle--$

  2. export MY_VARIABLE="$USER/.gradle"--Zitate

  3. export MY_VARIABLE=USER/.gradle--Nein $

  4. export $MY_VARIABLE=$USER/.gradle--Alle $

Welche Bedeutung hat in diesen Fällen das $-Zeichen? Warum wird es manchmal verwendet und manchmal nicht?

Brauchen wir Anführungszeichen, wenn der Pfad keine Leerzeichen enthält? Was passiert, wenn der Pfad in $USER Leerzeichen enthält?

Warum steht auf der linken Seite des Exports kein $?

Antwort1

Token wie export, declare, und dergleichen verwenden explizit Variablennamen als Parameter. $kann im Allgemeinen als „der Wert von“ verstanden werden, $variablebedeutet also „der Wert von variable“. Nehmen Sie diesen Befehlssatz:

foo=bar
bar=baz
export $foo
( echo "$foo" )

Was hier passieren wird, ist, dass Sie eine leere Ausgabezeile erhalten. Das liegt daran, dass im exportBefehl $footatsächlich bar(der Wert von foo) ist, also ist der tatsächlich ausgeführte Befehl export bar. Da foonicht exportiert wird, ist sein Standardwert null. Wenn die letzte Zeile jedoch wäre:

( echo "$bar" )

Sie würden die Ausgabe von erhalten baz, deren Wert in die nachfolgenden Unter-Shells eingefügt barwurde export.

Es ist im Allgemeinen eine sehr gute Idee, schwache Anführungszeichen (" ") zu verwenden "umalleIhrer Variablenreferenzen, aus Gründen, die den von Ihnen genannten umfassen, aber nicht darauf beschränkt sind (z. B. Leerzeichen in Dateinamen und Pfaden). Wenn wir beispielsweise Folgendes hätten:

if [ $letter == a ]; then echo "ayyyy"; fi

aber letterleer wären, würde die Shell versuchen,

if [  == a ]

das ist ein Syntaxfehler, aber mit Anführungszeichen:

if [ "$letter" == a ];

wird

if [ "" == a ];

was gültig ist.

verwandte Informationen