voidint/gbb

*NIX系统下通过shell对命令形式的变量表达式进行求值

voidint opened this issue · 3 comments

{
    "version": "0.5.0",
    "tool": "go build  -ldflags='-s -w' -gcflags='-N -l'",
    "importpath": "github.com/voidint/gbb/build",
    "variables": [
        {
            "variable": "Branch",
            "value": "$(git branch | grep '*' | awk {'print $2'})"
        }
    ]
}

对于git branch | grep '*' | awk {'print $2'}这种由多个命令组合而成的复杂命令表达式,显然无法直接使用exec.Command()来获得最终结果。而通过shell来执行此类复杂命令,却可以极大简化整个表达式求值过程。

/bin/sh -c "echo 'hello world'"

great!

  • *nix系统下,读取SHELL环境变量,调用当前用户的shell对表达式求值。
  • 是否所有shell都有-c选项?