Linux

; is just a command seperator so if you have 'command1; command2' then
'command2' will always be run after attempting to run 'command1'
However if you have 'command1 && command2' then
'command2' will only be run if 'command1' returned zero exit status

Example:
$> [[ "a" = "b" ]] && echo ok 

$> [[ "a" = "b" ]]; echo ok 
ok
Flyhouse_Squarewheel