Любой может сообщить мне возможные коды возврата для команды rm -rf, отличные от нуля, т. Е. Возможные коды возврата для случаев сбоя. Я хочу узнать более подробную причину сбоя команды, в отличие от просто сбой команды (возврат, отличный от 0).
9
man ls
в Ubuntu, это объясняет причину ненулевого статуса выходаОтветы:
Чтобы увидеть код возврата, вы можете использовать
echo $?
в bash.Чтобы увидеть реальное значение, некоторые платформы (например, Debian Linux) имеют
perror
бинарный файл, который можно использовать следующим образом:rm -rf
автоматически подавляет большинство ошибок. Наиболее вероятная ошибка, которую вы увидите:1
(Операция не разрешена), которая произойдет, если у вас нет прав на удаление файла.-f
намеренно подавляет большинство ошибокисточник
perror
. В моей системе он поставляется с MySQL.strace
сообщает вам, если системный вызов завершился неудачно, но если вы не посмотрите на источник, вы не будете знать, как системный вызов относится к состоянию завершения программы (например, если вы запускаете-f
,ENOENT
подавляется). Следовательно, это не имеет отношения здесьсхватил coreutils из мерзавца ....
глядя на выход мы видим ...
Теперь смотрим на переменную состояния ....
похоже, там мало что происходит со статусом выхода.
Я вижу EXIT_FAILURE и EXIT_SUCCESS и ничего больше.
так в основном 0 и 1 / -1
Чтобы увидеть конкретные системные вызовы exit () и узнать, как они происходят в потоке процесса, попробуйте
довольно простой.
ссылка:
http://www.unix.com/man-page/Linux/EXIT_FAILURE/exit/
источник
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)
так что отрицательные голоса понятны.if (!(flags & FILEUTILS_FORCE)) {
добавления,else{printf("same error message as perror");}
я уверен, что другие реализации будут быть похожим, но в противном случае версия busybox могла бы быть построена сама по себе и включена.