Можно отбросить левых 0
символ со следующим:
a=00010
while [ "$a" != "${a#0}" ] ;do a=${a#0};done
printf "%08d" $a
00000010
Поскольку это не разветвляет новую сессию команды, это могло быть более быстро, чем использование sed
.
Можно вызвать десятичную интерпретацию со следующим синтаксисом:
a=000010
printf "%08d" $((10#$a))
00000010
Это могло быть полезно для преобразований:
a="0a"
printf "%04d" $((16#$a))
0010
a="00001010"
printf "%04d" $((2#$a))
0010
a="00012"
printf "%04d" $((8#$a))
0010
a="0020"
printf "%04d" $((5#$a))
0010
a="0013"
printf "%04d" $((7#$a))
0010
и так далее...
a="zz"
printf "%04d" $((36#$a))
1295
Запросите вызов марионетки, сгенерируйте этот файл с помощью authconfig, и ЗАТЕМ отсортируйте этот файл в файл chk, по которому марионетка ЗАТЕМ проверяет сумму. Если только порядок отличается, отсортированный сгенерированный файл не изменится в сумме.