如何将 grep 的值分配给变量并与字符串连接



我的开发机器上有几台服务器。我每个人都有一个脚本来运行它们,并且我一次正在处理几个 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 分支,并且值似乎根本没有分配给变量。我无法弄清楚我哪里出了问题

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

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

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

echo $(echo foo$(echo bar))

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

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

相关内容

  • 没有找到相关文章

最新更新