英文:
Go exec.Command() returns exit status 64
问题
我正在翻译以下内容:
我正在研究在Go语言中使用exec.Command()
函数。这个函数很简单,使用像"ls"、"cat"等基本终端命令没有问题。
但是,当我想要在macOS中使用"log"命令的输出时,它总是返回一个错误。
以下是它的简单用法:
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
我期望能够看到在macOS中执行"log help"命令的输出。
但是,我的程序返回了一个带有"exit status 64"的错误。
请告诉我是否有什么我忽略的地方。
英文:
I was figuring out
> exec.Command()
In Go. It is straightforward and has no problem using primary terminal commands like "ls", "cat", etc...
But, when I wanted to use the output of the "log" command in macOS. It always returns an error.
Here is the simple usage of it:
func main() {
out, err := exec.Command("log", "help").Output()
if err != nil {
log.Printf("error: %v", err)
}
fmt.Println(string(out))
}
And here is the error:
2022/11/19 20:03:37 error: exit status 64
I expected to see outputs of log help
in macOS.
But, my program returns an error with exit status 64
Please let me know if there is anything I missed.
答案1
得分: 0
你的代码没有问题,如果你在终端中执行完全相同的命令,并查看退出状态,它将是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.
英文:
There's nothing wrong with your code, if you try the exact same command you're executing in terminal, and see the exit status, it will be 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
And in case you're wondering why is it returning 64
, you can ask sysexits
for what it means:
➜ ~ 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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论