南阳在线网站制作,做银行设计有好的网站参考吗,杭州标志设计公司,成都建站免费模板本文提供了在环境变量$PATH设置的目录里查找符合条件的文件的方法。
实现函数
import (fmtospathstrings
)// 实现 unix whtich 命令功能
func Which(cmd string) (filepath string, err error) {// 获得当前PATH环境变量en…本文提供了在环境变量$PATH设置的目录里查找符合条件的文件的方法。
实现函数
import (fmtospathstrings
)// 实现 unix whtich 命令功能
func Which(cmd string) (filepath string, err error) {// 获得当前PATH环境变量envPath : os.Getenv(PATH)// 分割为多个路径path_list : strings.Split(envPath, :)for _, dirpath : range path_list {// 判断环境变量路径是否是目录dirInfo, err : os.Stat(dirpath)if err ! nil {return , err}if !dirInfo.IsDir() {continue}// 判断命令所在的路径是否存在filepath : path.Join(dirpath, cmd)_, err os.Stat(filepath)if err nil || os.IsExist(err) {return filepath, nil}}return , err
}
单元测试
import (testinggithub.com/stretchr/testify/assert
)func TestWhich(t *testing.T) {filepath, _ : Which(sh)assert.Equal(t, filepath, /bin/sh)filepath, err : Which(xxx)assert.Equal(t, filepath, )assert.ErrorContains(t, err, no such file or directory)
}