(CommandList
  children: [
    (C {(/bin/echo)} {(-n)} {(DQ ('User account: '))})
    (C {(read)} {(account)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-z)} {($ VSub_Name '$account')} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Sentence
              child: (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [16777215 33]
        )
      ]
      spids: [16777215 44]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(/bin/echo)} {(-n)} {(DQ ('Remote host: '))})
            (C {(read)} {(host)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-z)} {($ VSub_Name '$host')} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})]
                  spids: [16777215 90]
                )
              ]
              spids: [16777215 98]
            )
          ]
          spids: [16777215 61]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:host)
              op: Equal
              rhs: {($ VSub_Number '$1')}
              spids: [103]
            )
          ]
          spids: [103]
        )
      ]
      spids: [100 106]
    )
    (C {(exec)} {(sftp)} {(-C)} {($ VSub_Name '$account') (Lit_Other '@') ($ VSub_Name '$host')})
  ]
)