Not sure if this is what you want, but something like the following might work. It doesn't do the bash prompt since there is not way of getting the current prompt output reliably, but if you just want a fake one for display purposes, you could hard code it into the script. Also, it doesn't check the exit codes and abort early, as the && would do, but that's easy enough to add in.
#!/bin/bash COMMANDS=() COMMANDS[0]="echo 1" COMMANDS[1]="echo 2" COMMANDS[2]="echo 3" for ((i = 0; i < ${#COMMANDS[@]}; i++)) ; do echo "${COMMANDS[$i]}" ${COMMANDS[$i]} done On Thu, 12 Mar 2015 at 14:13 TimA <t...@ls83.eclipse.co.uk> wrote: > Hi > > I'd like to run multiple commands in Bash: > > patch -m <patchfile && hg diff && cd dir && make -s > > but for audit purposes I'd like each command in the list to be echoed as > run, even better I'd like the Bash prompt to appear too in front of each > line. > > I know that as an alternative I can put the commands in a script with > #!/bin/bash -v to get the first requirement. > > Cheers > > Tim > > -- > Next meeting: Bournemouth, Tuesday, 2015-04-07 20:00 > Meets, Mailing list, IRC, LinkedIn, ... http://dorset.lug.org.uk/ > New thread: mailto:dorset@mailman.lug.org.uk / CHECK IF YOU'RE REPLYING > Reporting bugs well: http://goo.gl/4Xue / TO THE LIST OR THE AUTHOR > -- Next meeting: Bournemouth, Tuesday, 2015-04-07 20:00 Meets, Mailing list, IRC, LinkedIn, ... http://dorset.lug.org.uk/ New thread: mailto:dorset@mailman.lug.org.uk / CHECK IF YOU'RE REPLYING Reporting bugs well: http://goo.gl/4Xue / TO THE LIST OR THE AUTHOR