problema durante a compilação

problema durante a compilação

Estou aprendendo a compilar usando seuCompilando EasyHowToguia. Mas assim que executo o comando mostrado abaixo no terminal, aparece o seguinte erro:

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

Alguma ideia de como superar esse problema?

Responder1

Você não precisa substituir $USERpelo seu próprio nome de login de sessão (tejas), pois esta variável já contém "tejas".

Portanto, o comando certo a ser usado é:

sudo chown $USER /usr/local/src

As variáveis $ENV​​, $LOGNAME, $MAIL, $TERM, $USERe $USERNAMEnão são internas do Bash. No entanto, elas são frequentemente definidas como variáveis ​​ambientais em um dos arquivos Bash ou de inicialização de login.

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

Responder2

Enquantovocê não precisasubstitua manualmente seu nome de usuário por $USER, você pode, se quiser. Você apenas tem que colocá-lono lugar dea "palavra" inteira $USER, não apenas USER. Ou seja, deixe de lado o $que você escreve:

sudo chown tejas /usr/local/src

Isso ocorre porque $antes de um "nome" significar, ele é o nome de uma variável e que a variável deve ser desreferenciada - isto é, substituída pelo valor armazenado nela. USERé uma variável de ambiente que contém seu nome de usuário.

Em contraste, tejas(provavelmente) não está definido (no sentido de ser uma variável à qual foi atribuído algum valor). Em um shell, uma variável que não está definida é tratada, em muitos aspectos, como se estivesse vazia - ou seja, mantendo a sequência de texto vazia (ou seja, de comprimento zero). Então$tejas é substituído pornadae o comando que realmente é executado é o sudo chown /usr/local/src, que não funciona.

informação relacionada