我正在尝试在 Go 中自动化一个过程。我已经能够实现线程并相应地执行过程,但是输出是混合和匹配的。
我想知道是否有一种方法可以显示程序根据程序的过程生成的输出。因此,如果任务 A 在任务 B 之前完成,我们会在 B 之前显示 A 的输出,反之亦然。
package main
import (
"fmt"
"log"
"os"
"os/exec"
"sync"
)
var url string
var wg sync.WaitGroup
func nikto() {
cmd := exec.Command("nikto", "-h", url)
cmd.Stdout = os.Stdout
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
wg.Done()
}
func whois() {
cmd := exec.Command("whois", "google.co")
cmd.Stdout = os.Stdout
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
wg.Done()
}
func main() {
fmt.Printf("Please input URL")
fmt.Scanln(&url)
wg.Add(1)
go nikto()
wg.Add(1)
go whois()
wg.Wait()
}
手掌心
相关分类