This commit is contained in:
spiritlhl
2024-07-26 09:09:06 +00:00
parent 5e310e84db
commit 42411b2a01
3 changed files with 36 additions and 21 deletions

View File

@@ -4,6 +4,7 @@ import (
"bytes"
"os"
"os/exec"
"path/filepath"
"strings"
)
@@ -70,29 +71,44 @@ func GetTimeZone() string {
return CurrentTimeZone
}
// // GetPATH 检测本机的PATH环境是否含有对应的命令
// func GetPATH(key string) (string,bool) {
// // 指定要搜索的目录列表
// dirs := []string{"/usr/local/bin", "/usr/local/sbin", "/usr/bin", "/usr/sbin", "/sbin", "/bin", "/snap/bin"}
// // 循环遍历每个目录
// for _, dir := range dirs {
// // 检查文件是否存在
// _, err := os.Stat(dir)
// if os.IsNotExist(err) {
// continue
// }
// cmd := exec.Command("ls", dir)
// output, err := cmd.Output()
// if err != nil {
// continue
// }
// files := strings.Split(string(output), "\n")
// for _, file := range files {
// if file == key {
// return dir, true
// }
// }
// }
// return "", false
// }
// GetPATH 检测本机的PATH环境是否含有对应的命令
func GetPATH(key string) (string,bool) {
func GetPATH(key string) (string, bool) {
// 指定要搜索的目录列表
dirs := []string{"/usr/local/bin", "/usr/local/sbin", "/usr/bin", "/usr/sbin", "/sbin", "/bin", "/snap/bin"}
// 循环遍历每个目录
for _, dir := range dirs {
// 检查目录是否存在
_, err := os.Stat(dir)
if os.IsNotExist(err) {
continue
}
cmd := exec.Command("ls", dir)
output, err := cmd.Output()
if err != nil {
continue
}
files := strings.Split(string(output), "\n")
for _, file := range files {
if file == key {
return dir, true
}
// 使用 filepath.Join 来构造文件路径
filePath := filepath.Join(dir, key)
// 检查文件是否存在且可执行
if fileInfo, err := os.Stat(filePath); err == nil && fileInfo.Mode().IsRegular() && (fileInfo.Mode()&0111 != 0) {
return dir, true
}
}
return "", false
}