【问题标题】:How do I assign the value of grep into a variable and concatenate with a string?如何将 grep 的值分配给变量并与字符串连接?
【发布时间】:2012-12-04 05:15:10
【问题描述】:

我的开发机器上有几台服务器。我每个人都有一个脚本来运行它们,我一次处理几个 git 分支。因此,每当我运行运行服务器的脚本时,我希望它打印我试图以不同颜色运行的 git 分支中的哪个服务器。

这是我所拥有的,但它无法正常工作。

git_branch= git branch|grep '*'|cut -c3-
echo -e "\e[1;33;40m Running API server on git branch  $git_branch \e[0m"
...
REST_OF_THE_CODE_THAT_RUNS_THE_DEV_SERVER
...

它首先打印 git 分支,并且该值似乎根本没有分配给变量。我无法弄清楚我哪里出错了

【问题讨论】:

    标签: bash shell grep


    【解决方案1】:

    要将命令行的结果分配给变量,请使用反引号或$(..) 表示法。例如,假设您的命令行有效,您可以使用:

    git_branch=$(git branch|grep '*'|cut -c3-)
    

    这种表示法比反引号更可取,因为它更容易阅读,并且允许嵌套而不需要转义:

    echo $(echo foo$(echo bar))
    

    请注意,在您的原始代码中,您的 grep 应该更具体。请记住,对于 grep,星号实际上意味着“前一个原子的零个或多个”。所以这样会更好:

    git_branch=$(git branch|grep '^[*]'|cut -c3-)
    

    【讨论】:

      猜你喜欢
      • 2018-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      相关资源
      最近更新 更多