0

我在 Windows 10 64bit 中安装了 gitbash,但我认为我要求的解决方案在 Linux Git 和 Win GitBash 中都可以使用。

我已经定义了BRNCH变量来执行涉及当前分支的多个提交和合并操作,所以我声明了当前分支,如下所示:

BRNCH=`git branch --show-current`

现在我想从同一个当前分支变量中的分支名称中获取票证 ID(通常是分支名称的大写,丢弃任何版本,如-v1, -v2.... 并保持数字不变),我在下面尝试,但这不起作用:

echo ${BRNCH%-*^^}

所以例如。如果我拥有的分支名称是abc-123-v3上面的代码,预计将执行多个字符串操作和 print ABC-123,甚至不执行单个操作,但这有效并给了我abc-123

echo ${BRNCH%-*}

我对 Bash 编码不是很了解,所以我假设像嵌套大括号对之类的具有顺序优先级的东西(这可能是 Bash 和 GitBash 未来可能的增强 :))可能会起作用并应用它,但这也不起作用:

echo ${{BRNCH%-*}^^}

那么如何只用一行或最少的代码和步骤对 bash 变量进行多个字符串操作呢?

4

1 回答 1

0

所以例如。如果我拥有的分支名称是abc-123-v3上面的代码,预计将执行多个字符串操作并打印ABC-123

有什么问题

v=${BRNCH%-*}
echo ${v^^}

?

您可以隐藏温度并省去以后的麻烦,

ticketfor() { local v=${1%-*}; echo ${v^^}; }

ticketfor $BRNCH
于 2020-07-03T23:16:06.430 回答