(command.CommandList children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(grep)} {(-Eq)} {(DQ ('^/'))}) ] negated: F ) terminator: (Token id:Id.Op_Semi val:';' span_id:33) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:path) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [38] ) ] ) ] spids: [16 35] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:path) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:45) command_list: (command.CommandList children:[(C {(pwd)})]) ) (/) ($ Id.VSub_Number '$1') } spids: [44] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:path) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:57) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$path'))}) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/ /%20/g' span_id:71))}) ] negated: F ) ] ) ) } spids: [56] ) ] ) (C {(firefox)} {(DQ ('file://') ($ Id.VSub_DollarName '$path'))}) ] )