Bash para imprimir o resultado da criação

3

Para compilar meu projeto e verificar se é bom ou não, eu quero imprimir a mensagem de status depois do comando make. Qual deles devo usar?

make && echo “Success” || echo “Fail”
make || echo “Fail” && echo “Success”
make || echo “Success” && echo “Fail”

Eu deveria usar o primeiro certo?

    
por EPSILONsdfsdfdsf 30.11.2013 / 06:40

1 resposta

5

Experiência - substitua "criar" por "verdadeiro" e "falso" (estes são comandos que não fazem nada, exceto para retornar o status implícito) e tente entender por que você obtém os resultados que você faz.

edit: Aqui está o tipo de experiência que tenho em mente:

for cmd in true false ; do
    printf "\n%s\n" $cmd
    $cmd && echo "1 Success"    || echo "1 Fail"
    $cmd || echo "2 Fail"       && echo "2 Success"
    $cmd || echo "3 Success"    && echo "3 Fail"
done

mas para o make, você deve descobrir quais valores de retorno a versão de fazer você usar retornos - aqui está um trecho do que estou executando:

STATUS DE SAÍDA
O GNU faz saídas com um status zero se todos os makefiles foram analisados com sucesso e nenhum destino criado falhou. Um status de um será retornado se o sinalizador -q for usado e o make determinar que um destino precisa ser reconstruído.
Um status de dois será retornado se algum erro for encontrado.

e um script com uma intenção semelhante que lida com esses valores de retorno:

for cmd in true false ; do
# make;
$cmd
status=$?;
case "$status" in
    0) echo 'all makefiles parsed, no builds failed'; ;;
    1) echo 'target needs to be rebuilt'; ;;
    2) echo 'error(s) in make'; ;;
    *) echo "make returned unknown status: $status"; ;;
esac;
done
return $status
    
por 30.11.2013 / 07:01