problema durante la compilación

problema durante la compilación

Estoy aprendiendo a compilar usando tuCompilandoEasyHowToguía. Pero tan pronto como ejecuto el comando que se muestra a continuación en la terminal, muestra el siguiente error:

tejas@tejas-AU909AA-ACJ-CQ3120IX:~$ sudo chown $tejas /usr/local/src
chown: missing operand after ‘/usr/local/src’

¿Alguna idea de cómo superar este problema?

Respuesta1

No es necesario reemplazarlo $USERpor su propio nombre de inicio de sesión (tejas), ya que esta variable ya contiene "tejas".

Entonces el comando correcto a usar es:

sudo chown $USER /usr/local/src

Las variables $ENV, $LOGNAME, $MAIL, $TERM, $USERy $USERNAMEno son funciones integradas de Bash. Sin embargo, estas a menudo se configuran como variables ambientales en uno de los archivos de inicio de sesión o Bash.

Fuente:http://tldp.org/LDP/abs/html/internalvariables.html

Respuesta2

Mientrasno tienes que hacerlosustituya manualmente su nombre de usuario por $USER, puede hacerlo si lo desea. solo tienes que ponerloen lugar detoda la "palabra" $USER, no sólo USER. Es decir, deja de lado lo $que escribas:

sudo chown tejas /usr/local/src

Esto se debe a que $antes de que un "nombre" signifique que es el nombre de una variable y que la variable debe ser desreferenciada, es decir, reemplazada por el valor almacenado en ella. USERes una variable de entorno que contiene su nombre de usuario.

Por el contrario, tejas(probablemente) no está definida (en el sentido de ser una variable a la que se le ha asignado algún valor). En un shell, una variable que no está definida se trata, en la mayoría de los casos, como si estuviera vacía, es decir, que contiene la cadena de texto vacía (es decir, de longitud cero). Entonces $tejases reemplazado pornaday el comando que realmente se ejecuta es sudo chown /usr/local/src, que no puede funcionar.

información relacionada