*** Running test-ast-formats
(C (w <Lit_Chars echo>) (w <Lit_Chars hi>))
(command.Simple
  blame_tok:(Token
    id:Lit_Chars
    length:4
    col:0
    line:(SourceLine line_num:1 content:"echo hi" src:(source.CFlag))
  )
  more_env:[]
  words:[
    (CompoundWord parts:[...0x7f04c7a17530])
    (CompoundWord
      parts:[(Token id:Lit_Chars length:2 col:5 line:...0x7f04c7a2f158)]
    )
  ]
  is_last_cmd:F
)
OK  test-ast-formats
*** Running test-exit-builtin-interactive
osh-0.27$ one
OK  test-exit-builtin-interactive
*** Running test-help
Oils 0.27.0		https://oils.pub/

~~~ oils-usage ~~~

bin/oils-for-unix is an executable that contains OSH, YSH, and more.

Usage: oils-for-unix MAIN_NAME ARG*
       MAIN_NAME ARG*

It behaves like busybox.  The command name can be passed as the first argument:

    oils-for-unix ysh -c 'echo hi'

More commonly, it's invoked through a symlink like 'ysh', which causes it to
behave like that command:

    ysh -c 'echo hi'

Oils 0.27.0		https://oils.pub/

~~~ osh-usage ~~~

bin/osh is compatible with POSIX shell, bash, and other shells.

Usage: osh FLAG* SCRIPT ARG*
       osh FLAG* -c COMMAND ARG*
       osh FLAG*

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

Oils 0.27.0		https://oils.pub/

~~~ ysh-usage ~~~

bin/ysh is the shell with data tYpes, influenced by pYthon, JavaScript, ...

Usage: ysh FLAG* SCRIPT ARG*
       ysh FLAG* -c COMMAND ARG*
       ysh FLAG*

Examples:

    ysh -c 'echo hi'
    ysh myscript.ysh
    echo 'echo hi' | ysh

bin/ysh is the same as bin/osh with a the ysh:all option group set.  So bin/ysh
also accepts shell flags.  Examples:

    bin/ysh -n myfile.ysh
    bin/ysh +o errexit -c 'false; echo ok'

Oils 0.27.0		https://oils.pub/

~~~ osh-usage ~~~

bin/osh is compatible with POSIX shell, bash, and other shells.

Usage: osh FLAG* SCRIPT ARG*
       osh FLAG* -c COMMAND ARG*
       osh FLAG*

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

Oils 0.27.0		https://oils.pub/

~~~ oils-usage ~~~

bin/oils-for-unix is an executable that contains OSH, YSH, and more.

Usage: oils-for-unix MAIN_NAME ARG*
       MAIN_NAME ARG*

It behaves like busybox.  The command name can be passed as the first argument:

    oils-for-unix ysh -c 'echo hi'

More commonly, it's invoked through a symlink like 'ysh', which causes it to
behave like that command:

    ysh -c 'echo hi'

OK  test-help
*** Running test-noexec-fails-properly
  echo; echo; |
              ^
[ -c flag ]:1: Invalid word while parsing command
_tmp/osh-usage-noexec.txt appears empty, as expected
OK  test-noexec-fails-properly
*** Running test-osh-file
===== Hello
hi
inside func
in subshell
another
ComSub
===== EMPTY
===== NO TRAILING NEWLINE
hi
OK  test-osh-file
*** Running test-osh-interactive
osh-0.27$ hi
osh-0.27$ ^D
osh-0.27$ osh-0.27$   ;
  ^
[ stdin -i ]:1: Invalid word while parsing command
osh-0.27$ ^D
osh-0.27$   ;echo OIL OIL
  ^
[ stdin -i ]:1: Invalid word while parsing command
osh-0.27$ ^D
osh-0.27$ osh-0.27$ ^D
OK  test-osh-interactive
*** Running test-osh-stdin
hi
inside func
in subshell
another
ComSub
===== EMPTY
===== NO TRAILING NEWLINE
hi

hi

line continuation
two
here doc
command sub
OK  test-osh-stdin
*** Running test-rc-file
TESTRC$ ^D
osh-0.27$ ^D
osh-0.27$ ^D
OK  test-rc-file
*** Running test-version
Oils 0.27.0		https://oils.pub/

Release Date: -
Arch: x86_64
OS: Linux
Platform: #25~22.04.1-Ubuntu SMP Thu Jan 16 21:37:09 UTC 2025
Compiler: GCC 8.3.0
Interpreter: CPython
Interpreter version: 2.7.16
Bytecode: -
OK  test-version

test/osh-usage.sh: 9 tests passed.