Go支持变量扩展,例如:
os.ExpandEnv( “测试 - $ {USER} ”)`
>> “测试MYNAME”
但是有没有办法扩展可执行文件,就像shell的行为方式一样?
像
这样的东西os.ExpandExecutable(“test- $(日期+%H:%M)”)
>> “测试-18:20”
我找不到一个等效的方法,是否有一种优雅的方法,而不是手动提取占位符,执行然后替换它们?
答案 0 :(得分:2)
此处没有内置函数,但您可以编写函数并将其传递给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}
。