O bash retorna alguma coisa quando executa um comando?

6

Eu encontrei o guia para testar se há um bug no Bash. Ou seja, quando

x='() { :;}; echo VULNERABLE' bash -c x

não retorna nada, é vulnerável. Mas existem casos como em C que o bash pode retornar algo mas o usuário não o verá?

    
por novice 24.10.2014 / 21:04

1 resposta

8

Sim, você está procurando o código de saída, mas isso é completamente irrelevante aqui. O teste que você executou imprimirá VULNERABLE no seu terminal se a versão do bash que você estiver usando for vulnerável. Se você não vê, você passou no teste.

Embora os programas possam retornar informações que não são necessariamente mostradas ao usuário, isso não é relevante para o problema aqui. Por exemplo, para ver o código de saída de um programa no bash, use a variável $? :

$ ls /tmp > /dev/null
$ echo $?
0
$ ls /nonexistent_directory  > /dev/null
ls: cannot access /nonexistent_directory: No such file or directory
$ echo $?
2

Então, sim, algo pode ser retornado que você não vê a menos que você peça, mas não, isso não significa que o teste que você executou poderia ter falhado.

    
por 24.10.2014 / 21:29

Tags