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

A quick question:

ADVERTISEMENTS

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 &

🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source & DevOps topics via:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04

ADVERTISEMENTS
6 comments… add one
  • mike Feb 6, 2007 @ 20:05

    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.

  • kiran May 28, 2013 @ 14:54

    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

    • Viktor Mar 8, 2015 @ 10:53

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

  • ShavedApe Jun 3, 2013 @ 19:49

    Anyone know how to do this in windows?

    • Matt Jun 21, 2013 @ 18:15

      Double Ampersands.

      dir c: && dir d:

  • DhanaG Jan 3, 2016 @ 5:56

    Thanks Matt 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.