I see these two usage on Ubuntu "command && command" and "command ; command",
e.g. apt-get update && apt-get upgrade
What would differ if I use apt-get update; apt-get upgrade
?
I am not asking for this specific usage but in general what is the difference between these two usage?
Best Answer
&&
is a logical operator.;
is simple sequencing.In
cmd1 && cmd2
, cmd2 will only be run if cmd1 exits with a successful return code.Whereas in
cmd1; cmd2
, cmd2 will run regardless of the exit status of cmd1 (assuming you haven't set your shell to exit on all failure in your script or something).On a related note, with
cmd1 || cmd2
, using the||
'OR' logical operator, cmd2 will only be run if cmd1 fails (returns a non-zero exit code).These logical operators are sometimes used in scripts in place of a basic if statement. For example,
...can be more concisely achieved with: