新手求教 想用go去linux下 执行一些linux 系统命令获得结果,没有用shell编程,但是go 不能执行history top 这样命令 有人也遇到过这样问题么 附上代码方便大家测试
package main
import (
"fmt"
"os/exec"
)
//换做 'ls' 这样名领是可以的
func getHistory(){
cmd := exec.Command("/bin/bash","-c","history")
out,err := cmd.Output()
if err != nil{
fmt.Println(err)
}
fmt.Println(string(out))
}
func main() {
getHistory()
}
有疑问加站长微信联系(非本文作者)

history 不是一个 linux 命令,而是 bash 内部的一个命令吧。top 因为是交互式的?
对,所以要执行 history这样 内部命令 不能用这样方式么? top 确实是动态的 有木有linux 命令的操作方式呢。
这样是可以获取到了 history 命令了 多谢@channel 提醒。
赞啊
cmd := exec.Command("/bin/bash","-c","top -bn2")
top 命令 -b 批处理 n 循环显示次数
学习了