如何以最少的步骤对 Bash 变量执行多个字符串操作?

How to perform multiple string operations on Bash variable with least steps?

我在 Windows 10 64 位中安装了 gitbash,但我认为我要求的解决方案在 Linux Git 和赢 GitBash.

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

BRNCH=`git branch --show-current`

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

echo ${BRNCH%-*^^}

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

echo ${BRNCH%-*}

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

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

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

So for eg. if the branch name I have is abc-123-v3 the above code which is expected to perform multiple string operations and print ABC-123

怎么了

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

?

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

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

ticketfor $BRNCH