]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[cmdline] Match user expectations for &&, ||, goto, and exit
authorMichael Brown <mcb30@ipxe.org>
Mon, 29 Nov 2010 14:19:59 +0000 (14:19 +0000)
committerMichael Brown <mcb30@ipxe.org>
Mon, 29 Nov 2010 14:19:59 +0000 (14:19 +0000)
commit7bebe9579ee5ea1cfcfcdf25032dbab80ccc489f
tree1d9a7812b7b79c1ba5f71af8ce01823cb89763a0
parent01df5c510f4949f1d9d85c0067c24b1093e3f838
[cmdline] Match user expectations for &&, ||, goto, and exit

The && and || operators should be left-associative, since that is how
they are treated in most other languages (including C and Unix
shell).  For example, in the command:

  dhcp net0 && goto dhcp_ok || echo No DHCP on net0

if the "dhcp net0" fails then the "echo" should be executed.

After an "exit" or a successful "goto", further commands on the same
line should never be executed.  For example:

  goto somewhere && echo This should never be printed
  exit 0 && echo This should never be printed
  exit 1 && echo This should never be printed

An "exit" should cause the current shell or script to terminate and
return the specified exit status to its caller.  For example:

  chain test.ipxe && echo Success || echo Failure
    [in test.ipxe]
    #!ipxe
    exit 0

should echo "Success".

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/core/exec.c
src/hci/shell.c
src/image/script.c
src/include/ipxe/command.h
src/include/ipxe/shell.h