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