(C {} {}) (command.Simple words: [ (compound_word parts:[(Token id:Id.Lit_Chars span_id:0 val:echo)]) (compound_word parts:[(Token id:Id.Lit_Chars span_id:2 val:hi)]) ] do_fork: T ) oil AST
(C {<echo>} {<hi>})
    
oil AST
(command.Simple
  words: [
    (compound_word parts:[(Token id:Id.Lit_Chars span_id:0 val:echo)])
    (compound_word parts:[(Token id:Id.Lit_Chars span_id:2 val:hi)])
  ]
  do_fork: T
)
    
OK ast-formats ===== Hello hi inside func in subshell another ComSub ===== EMPTY ===== NO TRAILING NEWLINE hi OK osh-file hi inside func in subshell another ComSub ===== EMPTY ===== NO TRAILING NEWLINE hi hi line continuation two here doc command sub OK osh-stdin [osh] spring ~/git/oilshell/oil$ hi [osh] spring ~/git/oilshell/oil$ ^D [osh] spring ~/git/oilshell/oil$ ; ^ [ stdin -i ]:1: Invalid word while parsing command [osh] spring ~/git/oilshell/oil$ [osh] spring ~/git/oilshell/oil$ ^D ;echo OIL OIL ^ [ stdin -i ]:1: Invalid word while parsing command [osh] spring ~/git/oilshell/oil$ [osh] spring ~/git/oilshell/oil$ ^D echo " ^ [ backticks at ... ]:1: Unexpected EOF reading double-quoted string that began here [osh] spring ~/git/oilshell/oil$ [osh] spring ~/git/oilshell/oil$ ^D OK osh-interactive [osh] spring ~/git/oilshell/oil$ one OK exit-builtin-interactive TESTRC$ ^D osh$ ^D osh$ ^D OK rc-file  App Bundle Usage  Usage: oil.ovm MAIN_NAME [ARG]... MAIN_NAME [ARG]... oil.ovm behaves like busybox. If it's invoked through a symlink, e.g. 'osh', then it behaves like that binary. Otherwise, the binary name can be passed as the first argument, e.g.: oil.ovm osh -c 'echo hi'  bin/osh Usage  Usage: osh [OPTION]... SCRIPT [ARG]... osh [OPTION]... -c COMMAND [ARG]... The command line accepted by bin/osh is compatible with /bin/sh and bash. osh -c 'echo hi' osh myscript.sh echo 'echo hi' | osh It also has a few enhancements: osh -n -c 'hello' # pretty-print the AST osh --ast-format text -n -c 'hello' # print it full osh accepts POSIX sh flags, with these additions: -n parse the program but don't execute it. Print the AST. --ast-format what format the AST should be in  bin/oil Usage  Usage: oil [OPTION]... SCRIPT [ARG]... oil [OPTION]... -c COMMAND [ARG]... bin/oil is the same as bin/osh with a the oil:all option group set. So bin/oil also accepts shell flags. oil -c 'echo hi' oil myscript.oil echo 'echo hi' | oil  bin/osh Usage  Usage: osh [OPTION]... SCRIPT [ARG]... osh [OPTION]... -c COMMAND [ARG]... The command line accepted by bin/osh is compatible with /bin/sh and bash. osh -c 'echo hi' osh myscript.sh echo 'echo hi' | osh It also has a few enhancements: osh -n -c 'hello' # pretty-print the AST osh --ast-format text -n -c 'hello' # print it full osh accepts POSIX sh flags, with these additions: -n parse the program but don't execute it. Print the AST. --ast-format what format the AST should be in  bin/oil Usage  Usage: oil [OPTION]... SCRIPT [ARG]... oil [OPTION]... -c COMMAND [ARG]... bin/oil is the same as bin/osh with a the oil:all option group set. So bin/oil also accepts shell flags. oil -c 'echo hi' oil myscript.oil echo 'echo hi' | oil OK help echo; echo; | ^ [ -c flag ]:1: Invalid word while parsing command _tmp/osh-usage-noexec.txt appears empty, as expected OK noexec-fails-properly Oil version 0.9.2 Release Date: - Arch: x86_64 OS: Linux Platform: #146-Ubuntu SMP Tue Apr 13 01:11:19 UTC 2021 Compiler: GCC 7.5.0 Interpreter: CPython Interpreter version: 2.7.17 Bytecode: - OK version All test/osh-usage.sh tests passed.