Go 支持变量扩展, 例如:
os.ExpandEnv("测试-${USER}")`
>> “测试-MyName”
但有没有办法扩展可执行文件,就像 shell 的行为方式一样?
就像是
os.ExpandExecutable("测试-$(日期 +%H:%M)")
>>“测试-18:20”
我找不到等效的方法,是否有一种优雅的方法可以做到这一点,而不是手动提取占位符,执行然后替换它们?
没有内置函数,但您可以编写一个函数并将其传递给os.Expand()
.
package main
import (
"fmt"
"os"
"os/exec"
"strings"
)
func RunProgram(program string) string {
a := strings.Split(program, " ")
out, err := exec.Command(a[0], a[1:]...).Output()
if err != nil {
panic(err)
}
return string(out)
}
// 然后你可以将其称为:
func main() {
s := os.Expand("test-${date +%H:%M}", RunProgram)
fmt.Print(s)
}
这输出:
test-13:09
注意os.Expand()
需要大括号,即${command args args args}
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)