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 $USER
por 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
, $USER
y $USERNAME
no 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.
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. USER
es 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 $tejas
es reemplazado pornaday el comando que realmente se ejecuta es sudo chown /usr/local/src
, que no puede funcionar.