Qualquer um pode me informar os possíveis códigos de retorno para o comando rm -rf diferente de zero, isto é, possíveis códigos de retorno para casos de falha. Eu quero saber mais detalhada razão para a falha do comando ao contrário apenas o comando é falhado (retorno diferente de 0).
8
man ls
no Ubuntu, explica a razão para o status de saída diferente de zeroRespostas:
Para ver o código de retorno, você pode usar
echo $?
no bash.Para ver o significado real, algumas plataformas (como o Debian Linux)
perror
binário disponível, que pode ser usado da seguinte forma:rm -rf
suprime automaticamente a maioria dos erros. O erro mais provável que você verá é1
(Operação não permitida), o que acontecerá se você não tiver permissões para remover o arquivo.-f
intencionalmente suprime a maioria dos errosfonte
perror
. No meu sistema ele vem com o mysql.strace
informa se uma chamada de sistema falha, mas a menos que você olhe para a fonte, você não sabe como o syscall está relacionado ao status de saída do programa (por exemplo, se você executar em-f
,ENOENT
é suprimido). Portanto, isso não é relevante aquipeguei coreutils do git ....
olhando para a saída, vemos ...
Agora, olhando para a variável de status ....
Parece que não há muita coisa acontecendo com o status de saída.
Eu vejo EXIT_FAILURE e EXIT_SUCCESS e não qualquer outra coisa.
então basicamente 0 e 1 / -1
Para ver syscalls de saída específicos () e como eles ocorrem em um fluxo de processo, tente
relativamente simples.
ref:
http://www.unix.com/man-page/Linux/EXIT_FAILURE/exit/
fonte
0 / >0
.I want to know more detailed reason for the failure of the command unlike just the command is failed(return other than 0)
então os votos abaixo são compreensíveis.if (!(flags & FILEUTILS_FORCE)) {
adicione umelse{printf("same error message as perror");}
Tenho certeza de que outras implementações seriam semelhantes, mas se não a versão do busybox poderia ser construída por conta própria e incluída.