1

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

export Path=$Path:dir

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

export $Path=$Path:dir/dir'

2 ответа2

7

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

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
3

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .