Howdy DapperDan,
you can concatenate multiple commands in a script e.g. in this way ...
[sup]#!/bin/sh
baseDir="~/script_commands"
outFile="$baseDir/testfile_$( date +%Y%m%d-%H%M%S ).txt"
alias cmdSeq="mkdir -p $baseDir ; cp /var/log/messages $outFile ; tail -n 5 $outFile"
cmdSeq
unset cmdSeq
echo "all done"[/sup]
The "alias"-thingie here is necessary and it is also often a quite useful method as e.g. a straight invocation of the commands would not work properly ...
[sup]NO-GO-EXAMPLE ...
cmdSeq="mkdir -p $baseDir ; cp /var/log/messages $outFile ; tail -n 5 $outFile"
$cmdSeq[/sup]
In the above example you'd get error-msgs about invalid commandline options for "mkdir".
A step further: If you want to ensure that the command-sequence only runs through if there are no errors encountered, you should concatenate the commands with ampersands ("&") like this ...
[sup]EXAMPLE: ensure proper exec. of previous cmd ...
cmdSeq="mkdir -p $baseDir & cp /var/log/messages $outFile & tail -n 5 $outFile"
$cmdSeq[/sup]
But I'm sure you already knew that one from compiling 2.4-kernels (make & make dep & make xyz & make world_go_round ...".
As it goes for a "script corner": I wholehartedly support this idea. And if anyone's interested, I could throw in e.g. an iptables-setup script that utilizes "arrays in bash-scripts" for hosts and services. Neat stuff regarding string handling and "loops" in there

hope that helps