Commands can also be combined in such a way that they are executed in a particular sequence.
Command1; command2
A command line can consist ofmultiplecommands. Each command is separated by a semicolon, and the command line is terminated with a newline. The exit status is that of the last command in the chain of commands.
The first command is executed, and the second one is started as soon as the first one has finished:
$ w; date
Output:satish@app:/home/satish$ w; date
12:55:08 up 276 days, 22:29, 2 users, load average: 5.72, 4.10, 3.60
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
satish pts/0 103.146.216.131 10:26 4.00s 0.45s 0.07s sshd: satish [priv]
Fri Mar 21 12:55:08 IST 2021
satish@app:/home/satish$
$ w ; date > whoandwhen
Output from thedatecommand will be redirected to thewhoandwhenfile.
In the preceding example, we can see that when we put multiple commands on the same line, but separated by the;command, then those commands execute sequentially one by one:
$ date; who am iTue Mar 10 23:21:38 PDT 201student pts/0 2015-03-10 23:12 (:0.0)
In the preceding example, the date command is executed first and the who am I command will be executed next. Both the commands are typed on the same lines, separated by the ; command.
Command grouping
Commands may also be grouped so that all of the output is either piped to another command or redirected to a file:
$ ( ls; pwd; date ) > outputfile
The output of each of the commands is sent to the file, outputfile. The spaces inside the parentheses are necessary:
$ ( w ; date ) > whoandwhen
The output of the w command and date will be redirected to the whoandwhen file:
$ (echo "***x.c***";cat x.c) > log.txt
Output:
This redirects the content ofx.cwith a heading***x.c***to the file out:
$ (pwd; ls; date) > log.txt
Output:
This redirects the output of commandspwd,ls, anddatein thelog.txtfile.