Ошибка команды Python не найдена при установке Python 3.7.3 на Python 2.7

ERRNO будет устанавливаться только gawk (GNU awk только)если getline или close завершатся ошибкой, но успешно прочитает (empty! )вывод ls. Этот вывод пуст, потому что ls выдает сообщение об ошибке ("ls :не может получить доступ..." )в стандартном канале ошибок, ничего не записывает в стандартный вывод и существует с кодом ошибки.

С помощью GNU awk вы можете получить статус выхода команды следующим образом:

exitstatus=close(cmd)
if (exitstatus) {
    # do something
}

Если вам нужно сообщение об ошибке команды, то вы должны перенаправить ее стандартный канал ошибки в какой-либо файл,и прочитайте это:

awk 'BEGIN {
    cmd = "ls -lrth /non/existing/path 2>standard-error.txt"
    while ( ( cmd | getline result ) > 0 ) {
        print result
    }
    es=close(cmd);
    if (es) {
        getline errstring < "standard-error.txt"
        print "exitstatus "es" error message "errstring;
    }
}'
1
08.07.2020, 05:25
0 ответов

Теги

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