problema durante a compilação

4

Estou aprendendo a compilar usando o guia CompilingEasyHowTo . Mas assim que eu executar o comando mostrado abaixo no terminal, ele mostra 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?

    
por agastya vishwamitra 09.09.2014 / 13:17

2 respostas

2

Você não precisa substituir $USER pelo seu nome de login da sessão (tejas), pois essa variável já contém "tejas".

Então, o comando certo para usar é:

sudo chown $USER /usr/local/src

As variáveis $ENV , $LOGNAME , $MAIL , $TERM , $USER e $USERNAME não são Bash builtins. Estes, no entanto, são frequentemente definidos como variáveis ambientais em um dos arquivos de inicialização Bash ou login.

Fonte: link

    
por Sylvain Pineau 09.09.2014 / 13:26
2

Enquanto você não precisa substituir manualmente seu nome de usuário por $USER , você pode, se quiser. Você só precisa colocar no lugar de toda a "palavra" $USER , não apenas USER . Ou seja, deixe de fora o $ no que você escreve:

sudo chown tejas /usr/local/src

Isso ocorre porque $ antes de um "nome" significa que é o nome de uma variável e que a variável deve ser desreferenciada - ou seja, 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 definido (no sentido de ser uma variável que recebeu algum valor). Em um shell, uma variável que não é definida é tratada, na maioria das vezes, como se estivesse vazia - isto é, mantendo a cadeia vazia de texto (isto é, comprimento zero). Portanto, $tejas é substituído por nada e o comando que realmente é executado é sudo chown /usr/local/src , o que não funciona.

    
por Eliah Kagan 09.09.2014 / 14:06

Tags