この問題を解決する他の方法が機能することは承知していますが (現在は「expr」メソッドを使用しています)、bash 組み込み関数のみでそれを行う方法を理解できないことに悩まされています。
${variable##remove} コンストラクトを使用して変数から先頭のゼロを削除しようとすると、1 つのゼロまたはすべての数値を削除することしかできません。
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 のマニュアルを 2 回読んで、正しく行っているかどうかを確認しましたが、公式ドキュメントはせいぜいまばらです。extglob を有効にするとこの問題も解決される可能性があることは承知していますが、このような単純な問題ではやり過ぎのように思えます。
明らかな何かが欠けているのでしょうか、それとも bash 関数のみを使用して文字列から 1 つまたは複数の先行ゼロを削除するのは本当に難しいのでしょうか?