(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:app)
          op: assign_op.Equal
          rhs: {(DQ (Dropbox.app))}
          spids: [7]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:verbose)
          op: assign_op.Equal
          rhs: {(1)}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:running)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:18)
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Pipeline
                          children: [
                            (C {(ps)} {(aux)})
                            (C {(grep)} {(-i)} {($ Id.VSub_DollarName '$app')})
                            (C {(grep)} {(-v)} {(grep)})
                          ]
                          negated: F
                        )
                      ]
                    )
                )
              )
            }
          spids: [16]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_Equals '=')} 
                  {(DQ (-s))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:58)
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:verbose)
                  op: assign_op.Equal
                  rhs: {(0)}
                  spids: [66]
                )
              ]
            )
          ]
          spids: [42 60]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} 
                  {(DQ ($ Id.VSub_DollarName '$running'))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:86)
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$verbose')} {(-eq)} {(1)} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:103)
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ($ Id.VSub_DollarName '$app') (' is running with PID ') 
                          (command_sub
                            left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:113)
                            command_list: 
                              (command.CommandList
                                children: [
                                  (command.Pipeline
                                    children: [
                                      (C {(echo)} {($ Id.VSub_DollarName '$running')})
                                      (C {(cut)} 
                                        {(-d) 
                                          (word_part.EscapedLiteral
                                            token: 
                                              (Token
                                                id: Id.Lit_EscapedChar
                                                val: '\\ '
                                                span_id: 123
                                              )
                                          )
                                        } {(-f2)}
                                      )
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                          )
                        )
                      }
                    )
                  ]
                  spids: [91 105]
                )
              ]
            )
          ]
          spids: [72 88]
        )
      ]
      else_action: [
        (command.If
          arms: [
            (if_arm
              cond: [
                (command.Sentence
                  child: 
                    (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$verbose')} {(-eq)} {(1)} 
                      {(Id.Lit_RBracket ']')}
                    )
                  terminator: (Token id:Id.Op_Semi val:';' span_id:147)
                )
              ]
              action: [(C {(echo)} {(DQ ('Launching ') ($ Id.VSub_DollarName '$app'))})]
              spids: [135 149]
            )
          ]
        )
        (C {(open)} {(-a)} {($ Id.VSub_DollarName '$app')})
      ]
    )
    (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:172) arg_word:{(0)})
  ]
)