package cmd import ( "os/exec" "strings" ) func CheckIllegal(args ...string) bool { if args == nil { return false } for _, arg := range args { if strings.Contains(arg, "&") || strings.Contains(arg, "|") || strings.Contains(arg, ";") || strings.Contains(arg, "$") || strings.Contains(arg, "'") || strings.Contains(arg, "`") || strings.Contains(arg, "(") || strings.Contains(arg, ")") || strings.Contains(arg, "\"") || strings.Contains(arg, "\n") || strings.Contains(arg, "\r") || strings.Contains(arg, ">") || strings.Contains(arg, "<") { return true } } return false } func SudoHandleCmd() string { cmd := exec.Command("sudo", "-n", "ls") if err := cmd.Run(); err == nil { return "sudo " } return "" } func Which(name string) bool { stdout, err := RunDefaultWithStdoutBashCf("which %s", name) if err != nil || (len(strings.ReplaceAll(stdout, "\n", "")) == 0) { return false } return true }