(command.CommandList children: [ (command.Simple blame_tok: <_Dbg_help_add> more_env: [] words: [ {<_Dbg_help_add>} {<skip>} { (DQ <'**skip** [*count*]\n'> <'\n'> <'Skip (don\'t run) the next *count* command(s).\n'> <'\n'> <'If *count* is given, stepping occurs that many times before\n'> <'stopping. Otherwise *count* is one. *count* can be an arithmetic\n'> <'expression.\n'> <'\n'> <'Note that skipping doesn\'t change the value of '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'?. This has\n'> <'consequences in some compound statements that test on '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'?. For example\n'> <'in:\n'> <'\n'> <' if grep foo bar.txt ; then\n'> <' echo not skipped\n'> <' fi\n'> <'\n'> <'skipping the *if* statement will in effect skip running the *grep*\n'> <'command. Since the return code is 0 when skipped, the *if* body is\n'> <'entered. Similarly the same thing can happen in a *while* statement\n'> <'test.\n'> <'\n'> <'See http://lists.gnu.org/archive/html/bug-bash/2017-04/msg00004.html\n'> <'\n'> <'See also:\n'> <'---------\n'> <'\n'> <'**next** and **step**.\n'> ) } ] redirects: [] do_fork: T ) (command.ShFunction name_tok: <_Dbg_do_skip> name: _Dbg_do_skip body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike '_Dbg_last_cmd='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_Dbg_last_cmd='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '_Dbg_last_cmd='> name:_Dbg_last_cmd) op: assign_op.Equal rhs: {(SQ <skip>)} ) ] redirects: [] ) (command.Simple blame_tok: <_Dbg_next_skip_common> more_env: [] words: [{<_Dbg_next_skip_common>} {<1>} {($ Id.VSub_Star '*')}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_QMark '?')} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )