One way to implement character padding in Bash is to use printf and substring extraction. This can be especially useful in reports or menu display.
Given a $padding variable that contains the maximum length of characters, you can subtract out the length of a display string like below.
# length of maximum padding
padding="......................................"
printf "==== TABLE OF CONTENTS ===========================\n"
# print first line
title="1) Chapter one - the intro"
printf "%s%s %s\n" "$title" "${padding:${#title}}" "Page 1"
# print second line
title="2) Chapter two - summary"
printf "%s%s %s\n" "$title" "${padding:${#title}}" "Page 4"
Which would look like this on screen
==== TABLE OF CONTENTS =========================== 1) Chapter one - the intro............ Page 1 2) Chapter two - summary.............. Page 4
Here is a full example, test_string_padding.sh
REFERENCES
stackoverflow Fritz G Mehner solution with bash substring extraction
stackoverflow J Jorgenson, another solution for printf padding