I'm using bash as my main shell, but it's an open question and responses for shells others than bash are very welcome.  If I'm typing interactively  #original line #wget http://something.com && unzip something && mv -f something /home/poney/ #new linewget http://something.com ; unzip something ; mv -f something /home/poney/Does it make any difference in term of execution pile, order, memory, interpretation, permission compare to a script that contains those line: #!/bin/bashwget http://something.comunzip something mv -f something /home/poney/PS:except the fact that executing a script is shorter than typing 3 command in a row obviously.
What is the difference between the use of ; and executing a script
shell;command line
Yes, there is a big difference.  && is short-circuiting, so the subsequent command would be executed only if the previous one returned with an exit code of 0.Quoting from the manual:expression1 && expression2True if both expression1 and expression2 are true.On the other hand, a script containingexpression1expression2would execute the second expression even if the first failed.  (Unless you specified the script to exit on error by saying set -e.)EDIT: Regarding your comment whether:command1; command2is the same as:command1command2The answer is usually.  Bash parses an entire statement block before evaluating any of it. A ; doesn't cause the previous command to be evaluated. If the previous command were to have an effect on how the subsequent one would be parsed, then you'd notice the difference.Consider a file containing aliases, lets call it alias, with an entry:alias f=echo fooNow consider a script containing:shopt -s expand_aliasessource ./aliasfand another one containing:shopt -s expand_aliases; source ./alias; fthen you might think that both would produce the same output.The answer is NO.  The first one would produce foo but the second one would report:... f: command not foundTo clarify further, it's not expand_aliases that's causing the problem.  The problem is due to the fact that a statement like:alias f=echo foo; fwould be parsed in one go.  The shell doesn't really know what f is, this causes the parser to choke.