A google search for "scripting screen" gives this as the first result. It looks like you can create named screen sessions with screen -d -m -S nameOfSession
. Then screen -X -S <session name> screen
will create a window in the screen session 'nameOfSession.' You can communicate with this window 1 (i.e. give commands for this screen session window 1 to run) by using
screen -X -S test -p 1 stuff "your command here ^M"
The "your_command_here" is the command you want to run. The ^M
is the carriage return control character (you type Ctrl-V then Enter/Return in a terminal). The ^M will essentially "press return/enter" so that the command is run in this screen session. Play around with it.
Since you want to wait for your commands to finish, I would suggest forking the processes, via the ampersand:
your_command &
Immediately after, the process-id of the forked of process is in $!. You can wait for all background processes to finish running by running wait
.
I would suggest the screen reference.