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

last updated in Categories Debian Linux, FreeBSD, Gentoo Linux, Linux, RedHat/Fedora Linux, Shell scripting, Sys admin, Tips, Ubuntu Linux, UNIX

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:

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/ &

Now you don’t have to wait finishing /root/ 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 &


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

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 ?


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

    Have a question? Post it on our forum!