(command.CommandList
  children: [
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:PATH)
                  op: assign_op.Equal
                  rhs: 
                    {(/bin) (Id.Lit_Other ':') (/usr/bin) (Id.Lit_Other ':') 
                      ($ Id.VSub_DollarName '$PATH')
                    }
                  spids: [109]
                )
              ]
            )
          terminator: (Token id:Id.Op_Semi val:';' span_id:115)
        )
        (C {(export)} {(PATH)})
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [121]
        )
        (assign_pair
          lhs: (sh_lhs_expr.Name name:dirs)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [123]
        )
        (assign_pair
          lhs: (sh_lhs_expr.Name name:localdirs)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [125]
        )
      ]
    )
    (command.ForEach
      iter_name: arg
      do_arg_iter: T
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$arg'))}
              arms: [
                (case_arm
                  pat_list: [{(-) (Id.Lit_Star '*')}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:opt)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$opt') (' ') ($ Id.VSub_DollarName '$arg'))}
                          spids: [148]
                        )
                      ]
                    )
                  ]
                  spids: [144 146 154 -1]
                )
                (case_arm
                  pat_list: [{(Id.Lit_Star '*')}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dirs)
                          op: assign_op.Equal
                          rhs: 
                            {(DQ ($ Id.VSub_DollarName '$dirs') (' ') ($ Id.VSub_DollarName '$arg'))}
                          spids: [160]
                        )
                      ]
                    )
                  ]
                  spids: [157 158 166 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:dirs)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:175)
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {(echo)} {($ Id.VSub_DollarName '$dirs')})
                          (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/:/ /g' span_id:187))})
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [174]
        )
      ]
    )
    (command.Case
      to_match: {(X) (DQ ($ Id.VSub_DollarName '$dirs'))}
      arms: [
        (case_arm
          pat_list: [{(X)}]
          action: [
            (command.Sentence
              child: 
                (C {(echo)} {(DQ ('usage: ') ($ Id.VSub_Number '$0') (' [options] directories ...'))})
              terminator: (Token id:Id.Op_Semi val:';' span_id:210)
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:212)
              arg_word: {(1)}
            )
          ]
          spids: [200 201 215 -1]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:localdirs)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:221)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(find)} {(-H)} {($ Id.VSub_DollarName '$dirs')} {(-fstype)} {(local)} {(-type)} 
                        {(d)} {(-prune)} {(-print)}
                      )
                    ]
                  )
              )
            }
          spids: [220]
        )
      ]
    )
    (command.Case
      to_match: {(X) (DQ ($ Id.VSub_DollarName '$localdirs'))}
      arms: [
        (case_arm
          pat_list: [{(X)}]
          action: [
            (C {(echo)} 
              {
                (DQ ($ Id.VSub_Number '$0') (': no local-mounted manual directories found: ') 
                  ($ Id.VSub_DollarName '$dirs')
                )
              }
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:266)
              arg_word: {(1)}
            )
          ]
          spids: [254 255 269 -1]
        )
        (case_arm
          pat_list: [{(Id.Lit_Star '*')}]
          action: [
            (C {(exec)} 
              {
                (command_sub
                  left_token: (Token id:Id.Left_Backtick val:'`' span_id:277)
                  command_list: 
                    (command.CommandList
                      children: [(C {(basename)} {($ Id.VSub_Number '$0')} {(.local)})]
                    )
                )
              } {($ Id.VSub_DollarName '$opt')} {($ Id.VSub_DollarName '$localdirs')}
            )
          ]
          spids: [272 273 290 -1]
        )
      ]
    )
  ]
)