Remember: If you're writing a shellscript with a metric ton of line blocks almost similar enough to put in a function but not quite, then save your fingers & write a shellscript to write all those lines for you.
Writing one-off programs that write other one-off programs is just as much real programming as writing anything you share by hand. There's nothing to be ashamed of.