¿Por qué 'exportar $Path=$Path:dir' no funciona?

¿Por qué 'exportar $Path=$Path:dir' no funciona?

Me pregunto por qué necesitamos usar este comando.

export Path=$Path:dir

¿Por qué el comando no se ve así?

export $Path=$Path:dir/dir'

Respuesta1

El signo del dólar $se utiliza paraaccesouna variable, no establecerla. Una forma sencilla de ver esto es intentar imprimir una variable:

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

Respuesta2

Si haces esto:

VAR=value

bash establece VAR en "valor", creando la variable, si no existiera.

Si tú escribes:

$VAR=value

luego bash ejecuta esto reemplazando $VAR por su valor actual. Digamos que $VAR tuviera el valor x, esto produciría:

x=var

como el comando a ejecutar. Por eso dice "comando no encontrado"

Sin embargo, se le puede decir a bash que reinterprete esto mediante eval:

VAR2=x
VAR=VAR2
echo $VAR2
x

eval $VAR=y
echo $VAR2
y

información relacionada