N'importe qui peut me faire connaître les codes de retour possibles pour la commande rm -rf autres que zéro, c'est-à-dire les codes de retour possibles pour les cas de défaillance. Je veux connaître la raison plus détaillée de l'échec de la commande, contrairement à la commande qui a échoué (retour différent de 0).
9
man ls
Réponses:
Pour voir le code retour, vous pouvez utiliser
echo $?
dans bash.Pour voir la signification réelle, certaines plateformes (comme Debian Linux) ont le
perror
binaire disponible, qui peut être utilisé comme suit:rm -rf
supprime automatiquement la plupart des erreurs. L'erreur la plus probable que vous verrez est1
(Opération non autorisée), qui se produira si vous n'avez pas les autorisations pour supprimer le fichier.-f
supprime intentionnellement la plupart des erreursla source
perror
. Sur mon système, il est livré avec mysql.strace
vous indique si un appel système échoue, mais à moins que vous ne regardiez la source, vous ne savez pas comment le syscall est lié à l'état de sortie du programme (par exemple, si vous exécutez-f
,ENOENT
est supprimé). Par conséquent, ce n'est pas pertinent iciattrapé coreutils de git ....
en regardant la sortie, nous voyons ...
Regardons maintenant la variable d'état ....
on dirait qu'il n'y a pas grand-chose avec le statut de sortie.
Je vois EXIT_FAILURE et EXIT_SUCCESS et rien d'autre.
donc en gros 0 et 1 / -1
Pour voir des appels système exit () spécifiques et comment ils se produisent dans un flux de processus, essayez ceci
assez simple.
réf:
http://www.unix.com/man-page/Linux/EXIT_FAILURE/exit/
la source
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)
donc les votes négatifs sont compréhensibles.if (!(flags & FILEUTILS_FORCE)) {
ajout,else{printf("same error message as perror");}
je suis sûr que d'autres implémentations le feraient être similaire, mais sinon la version busybox pourrait être construite seule et incluse.