mirror of
https://github.com/oneclickvirt/basics.git
synced 2025-10-08 01:50:28 +08:00
update
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user