我知道解决这个问题的其他方法确实有效(我目前正在使用'expr'方法),但它让我感到困扰,我无法弄清楚如何仅使用 bash 内置函数来解决这个问题。
当我尝试使用 ${variable##remove} 构造从变量中删除前导零时,我只能让它删除一个零或所有数字。
string="00123456"
echo "${string##0}" // Only the first 0 is removed
echo "${string##0*0}" // The whole string is removed
echo "${string#0*0}" // Works
string="01230"
echo "${string##0}" // Works
echo "${string##0*0}" // The whole string is removed
echo "${string#0*0}" // Again, the whole string is removed
我阅读了 bash 手册两次,看看我是否做得正确,但官方文档充其量是稀疏的。我知道启用 extglob 也可以解决这个问题,但对于像这样简单的问题来说,这似乎有点矫枉过正。
我是否遗漏了一些明显的东西,或者仅使用 bash 函数从字符串中删除一个或多个前导零真的很难吗?