Как я ищу коды выхода для приложений?

Существует флаг для sed's GNU s/// команда, которая делает это:

sed 's/;/;NEW;/2g' <

выводы

india;austria;NEW;japan;NEW;chile
china;US;NEW;nigeria;NEW;mexico;NEW;russia

См. https://www.gnu.org/software/sed/manual/sed.html#The-_ 0022s_0022-команда

s команда может сопровождаться нулем или большим количеством следующих флагов:

g

Примените замену ко всем соответствиям к regexp, не просто первое.

число

Только замените соответствие нумерующий regexp.Примечание: posix стандарт не указывает то, что должно произойти, когда Вы смешиваетесь g и модификаторы числа, и в настоящее время существуют не широко согласованы значение через sed реализации. Для GNU sed, взаимодействие определяется, чтобы быть: проигнорируйте соответствия перед нумерующего, и затем соответствуйте и замените все соответствия от нумерующий на.

...

(шахта акцента)

8
18.10.2014, 02:02
2 ответа

tl;dr Коды выхода специфичны для конкретного случая применения.

Существуют некоторые свободные конвенции. false и все, что успешно префиксовано с ! (как ! true) в POSIX-оболочках возвращает код выхода 1, но разработчик может использовать любой код выхода между 0 и 255 для чего угодно. В конце концов, вы должны посмотреть его документацию (в лучшем случае) или код (в худшем случае), чтобы понять, что он означает. Для программ со страницами man коды выхода часто перечисляются в разделе с именем EXIT STATUS (инструменты GNU, такие как find).

Некоторые популярные значения перечислены в /usr/include/sysexits.h - я стараюсь использовать их по возможности. Как указывает @AnsgarEsztermann, это не ссылка на Bash или даже не ссылка на приложение, за исключением тех, кто решил их использовать (разработчики на C/C++ в первую очередь в соответствии с ABS).

11
27.01.2020, 20:08

Отключите команды «shutdown/reboot/poweroff/halt/hostname», подобные командам на критически важных серверах

chmod 0 /sbin/shutdown

, затем, если необходимо использовать их, вернитесь к chmod 0755 .

-121--40138-

tl; dr Коды выхода зависят от приложения.

Есть некоторые свободные условности. false и все, что успешно выполнено с префиксом ! (например, ! true ) в оболочках POSIX возвращают код выхода 1, но разработчик может использовать любой код выхода от 0 до 255 для любых желаний. В конечном счете вы должны посмотреть на его документацию (в лучшем случае) или код (в худшем случае), чтобы знать, что это значит. Для программ с man коды выхода страниц часто перечисляются в разделе EXIT STATUS (инструменты GNU, такие как найти ).

Некоторые популярные значения перечислены в /usr/include/sysexits.h - стараюсь использовать их по возможности. Как указывает @ AnsgarEsztermann , это не ссылка на Bash или даже ссылка на приложение, за исключением тех, кто выбрал его использование (разработчики C/C + + в основном согласно ABS ).

-121--47146-

Существует несколько кодов выхода с зарезервированными специальными значениями :

Exit Code Number   Meaning
1      Catchall for general errors
2      Misuse of shell builtins (according to Bash documentation)
126    Command invoked cannot execute
127    "command not found"
128+n  Fatal error signal "n"
130    Script terminated by Ctrl-C
255*   Exit status out of range

Все, что ниже 125, является честной игрой для разработчиков, и действительно может быть проговорено, как l0b0 отмечает в своем ответе , прочитав man страницу для приложения, или исходный код, чтобы определить, что означает код (

12
27.01.2020, 20:08

Теги

Похожие вопросы