warum funktioniert „export $Path=$Path:dir“ nicht?

warum funktioniert „export $Path=$Path:dir“ nicht?

Ich frage mich nur, warum wir diesen Befehl verwenden müssen

export Path=$Path:dir

Warum sieht der Befehl nicht so aus

export $Path=$Path:dir/dir'

Antwort1

Das Dollarzeichen $wird verwendet, umZugangeine Variable, nicht sie setzen. Dies lässt sich leicht erkennen, indem man versucht, eine Variable auszudrucken:

test="Hello"
echo test
# prints 'test'
echo $test
# prints 'Hello'
$test="Bye"
# Not allowed

Antwort2

Wenn du das tust:

VAR=value

bash setzt VAR auf „Wert“ und erstellt die Variable, falls sie nicht existiert.

Wenn Sie schreiben:

$VAR=value

Anschließend führt Bash dies aus und ersetzt $VAR durch seinen aktuellen Wert. Angenommen, $VAR hätte den Wert x, dann würde dies Folgendes ergeben:

x=var

als auszuführender Befehl. Deshalb heißt es "Befehl nicht gefunden"

Sie können Bash jedoch anweisen, dies neu zu interpretieren, und zwar über eval:

VAR2=x
VAR=VAR2
echo $VAR2
x

eval $VAR=y
echo $VAR2
y

verwandte Informationen