почему «export $Path=$Path:dir» не работает?

почему «export $Path=$Path:dir» не работает?

Мне просто интересно, зачем нам нужно использовать эту команду.

export Path=$Path:dir

почему команда не выглядит как

export $Path=$Path:dir/dir'

решение1

Знак доллара $используется длядоступпеременная, а не ее установка. Простой способ увидеть это — попробовать распечатать переменную:

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

решение2

Если вы сделаете это:

VAR=value

bash устанавливает VAR в «значение», создавая переменную, если она не существует.

Если вы напишете:

$VAR=value

затем bash выполняет это, заменяя $VAR его текущим значением. Скажем, $VAR имело значение x, это даст:

x=var

как команда, которая должна быть выполнена. Вот почему пишет "команда не найдена"

Однако bash можно заставить интерпретировать это по-другому с помощью eval:

VAR2=x
VAR=VAR2
echo $VAR2
x

eval $VAR=y
echo $VAR2
y

Связанный контент