How do I print some text in bash and pad it with spaces to a certain width?
Use -
to left align a field.
printf "Echoing random number %-5s [ OK ]" $RAND_NUM
Alternatively, if you're on a Red Hat Linux system there are predefined functions that will print out green OK and red FAILED prompts (the ones you see during bootup):
#!/bin/bash
. /etc/init.d/functions
echo -n "Frobbing widget:"
frob_widget && echo_success || echo_failure
echo
Collect all your lines in one var or text file then pipe it through column
command.
So this (my example file /tmp/columns.txt
)
Echoing random number 1080 [ OK ]
Echoing random number 44332356 [ OK ]
Echoing random number 34842 [ OK ]
Echoing random number 342 [ OK ]
became this
Echoing random number 1080 [ OK ]
Echoing random number 44332356 [ OK ]
Echoing random number 34842 [ OK ]
Echoing random number 342 [ OK ]
Example command: cat /tmp/columns.txt | column -t