BASH Shell: How to run several commands in Sequence or all at once

Posted on in Categories Debian Linux, FreeBSD, Gentoo Linux, Linux, RedHat/Fedora Linux, Shell scripting, Sys admin, Tips, Ubuntu Linux, UNIX last updated February 6, 2007

A quick question:

How do I run several commands in Sequence or all at once?

If you need to run several commands chain them with a ; (semi colon). It is a control operator or metacharacter.
General Syntax:
command1;command2;command3

Commands separated by a ; are executed sequentially; the shell waits for each command to terminate in turn. The return status is the exit status of the last command executed.
$ clear;date

Run command all at once

To run several commands all at once by putting an ampersand & at the end of the command line. For example start backup script:
# /root/ftpbackup.sh &

Now you don’t have to wait finishing /root/ftpbackup.sh script.

Putting it all together

There might be thousands of *.bak file. You need to goto each directory and list all files in /tmp/list directory:
# for d in "/home/sales /home/dbs /data1"; do find $d -iname "*.bak" >> /tmp/list; done &

6 comment

  1. Put commands on one line separated by ‘&&’ (no quotes), so if one command exits with exit status 1, then the remaining commands will not execute.

  2. I have a shell script
    where I got 5 commands in each line. when I run the script I want that to be executed all the commands at same time. Not one after one.
    Is there any way ?

    /kiran

    1. you could use :
      #!/bin/bash
      process1 &
      process2 &
      process3 &
      process4 &
      process5 &
      process6 &
      process7 &
      process8 &
      this would start 8 processess in paralell (in background)

Leave a Comment