O que significa quando digito um comando e o terminal não faz nada? [fechadas]

0

Sou novo no Linux (estou executando o Ubuntu). Estou aprendendo novos comandos para o terminal e até mesmo seguindo alguns guias / fóruns sobre como fazer as coisas. Às vezes eu vou digitar um comando e o terminal faz uma nova linha e depois fica com um cursor piscando depois do último comando que eu digitei.

Às vezes, acho que o computador está apenas pensando e precisa de tempo para fazer alguma coisa (embora seja bom ter algum tipo de indicação do progresso na tarefa determinada). Às vezes, o terminal avança para me permitir digitar um novo comando e outras vezes eu espero alguns minutos antes de pressionar ctrl + c para parar o que estava fazendo.

Seria bom saber com o que estou lidando aqui para poder julgar melhor se devo esperar ou apenas perder meu tempo.

    
por GoProCameraByGoPro 07.07.2014 / 02:14

2 respostas

8

Eu gostaria de citar A programação da arte do Unix de Eric S. Raymond :

% bl0ck_qu0te%      

Programas bem elaborados tratam a atenção e concentração do usuário como um recurso precioso e limitado, apenas para ser reivindicado quando necessário.

Naturalmente, muitos programas não obedecem a essa regra, e a resposta realmente depende do programa em particular.

    
por muru 07.07.2014 / 02:44
4

Existem alguns comandos que não imprimem nada no padrão nem na saída de erro.

Mas eles definem o código de retorno de acordo. O código de retorno de qualquer comando pode ser acessado pela variável $? logo após a execução do comando. Se for 0, o comando foi executado com sucesso. Se for um valor maior que 0, ocorreu um erro.

Isso é muito conveniente ao usar esses comandos no script, já que você precisa fazer algo assim:

command && echo "Returned an OK status" || echo "Returned an non-OK status"

Ou quando mais ações forem tomadas com base no status retornado:

command
if [ $? == 0 ]; then
   # code to be executed when the command was executed successfully
else
   # code to be executed when the command was not executed successfully
fi

Em outros casos, esta é a maneira usada pelo comando para dizer que algo está habilitado ou não, como o comando selinuxenabled que retorna 0 se o SE (Security Enhanced) Linux estiver ativado, 1 se não estiver.

    
por Benoit 07.07.2014 / 14:16