Go exec.Command() возвращает статус выхода 64

я выяснял

exec.Command()

В Го. Это просто и не вызывает проблем с использованием основных команд терминала, таких как «ls», «cat» и т. д.

Но когда я хотел использовать вывод команды «log» в macOS. Всегда возвращает ошибку.

Вот простое его использование:

func main() {
    out, err := exec.Command("log", "help").Output()
    if err != nil {
        log.Printf("error: %v", err)
    }

    fmt.Println(string(out))
}

И вот ошибка:

2022/11/19 20:03:37 error: exit status 64

Я ожидал увидеть результаты log help в macOS.

Но моя программа возвращает ошибку с exit status 64

Пожалуйста, дайте мне знать, если я что-то пропустил.

Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В вашем коде нет ничего плохого, если вы попробуете ту же самую команду, которую выполняете в терминале, и увидите статус выхода, это будет 64:

➜  ~ log help
usage:
    log <command>

global options:
    -?, --help
    -q, --quiet
    -v, --verbose

commands:
    collect         gather system logs into a log archive
    config          view/change logging system settings
    erase           delete system logging data
    show            view/search system logs
    stream          watch live system logs
    stats           show system logging statistics

further help:
    log help <command>
    log help predicates

➜  ~ echo $?
64

И если вам интересно, почему он возвращается 64, вы можете спросить sysexits, что это значит:

➜  ~ man sysexits | grep -A 3 '64'
     EX_USAGE (64)         The command was used incorrectly, e.g., with the
                           wrong number of arguments, a bad flag, a bad syntax
                           in a parameter, or whatever.

О, спасибо. Я не ожидал командовать, была ли проблема сама по себе. echo $? получилось!

thinkerer 19.11.2022 20:38

Другие вопросы по теме