bash - 包含字母的增量变量

Max*_*ens 7 bash

我有一组有效字符[0-9a-z_]和一个分配了其中一个字符的变量.我想要做的是能够将该变量增加到集合中的下一个.

如果需要,我可以处理"特殊"情况,它会从'9'增加到'a'和'z'增加到'_',但我无法弄清楚如何增加字母.

#!/bin/bash
y=b
echo $y  # this shows 'b'
y=$((y+1))
echo $y  # this shows '1', but I want it to be 'c'
Run Code Online (Sandbox Code Playgroud)

Gor*_*son 8

y=b
echo "$y"  # this shows 'b'
y=$(echo "$y" | tr "0-9a-z" "1-9a-z_")
echo "$y"  # this shows 'c'
Run Code Online (Sandbox Code Playgroud)

请注意,这不处理$ y ="_"的情况(不知道你想要什么,并且无论如何它可能需要单独处理),如果$ y超过一个字符长,它将"增加"所有这些(即"10" - >"21","09g" - >"1ah"等).