(CommandList children: [ (C {(Lit_Other ":")} {(generate)} {(list)} {(of)} {(file)} {(servers)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:dir) op:Equal rhs:{(.)} spids:[85])] spids: [85] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:rsh) op:Equal rhs:{(rsh)} spids:[88])] spids: [88] ) (While cond: [(C {(Lit_Other ":")})] body: (DoGroup children: [ (Case to_match: {($ VSub_Pound "$#")} arms: [ (case_arm pat_list: [{(0)}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [104 105 109 -1] ) ] spids: [97 101 112] ) (Case to_match: {($ VSub_Number "$1")} arms: [ (case_arm pat_list: [{(-) (Lit_Other "[") (dr) (Lit_Other "]")}] action: [ (Case to_match: {($ VSub_Pound "$#")} arms: [ (case_arm pat_list: [{(1)}] action: [ (C {(set)} {(--)} {(SQ <"-?">)}) (ControlFlow token:<ControlFlow_Break break>) ] spids: [135 136 150 -1] ) ] spids: [128 132 153] ) (Case to_match: {($ VSub_Number "$1")} arms: [ (case_arm pat_list: [{(-d)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dir) op: Equal rhs: {($ VSub_Number "$2")} spids: [166] ) ] spids: [166] ) ] spids: [163 164 169 -1] ) (case_arm pat_list: [{(-r)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rsh) op: Equal rhs: {($ VSub_Number "$2")} spids: [175] ) ] spids: [175] ) ] spids: [172 173 178 -1] ) ] spids: [156 160 181] ) (C {(shift)}) ] spids: [122 126 187 -1] ) (case_arm pat_list: [{(SQ <"-?">)}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [191 193 198 -1] ) (case_arm pat_list: [{(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (Lit_Other "*")}] action: [ (SimpleCommand words: [ {(echo)} {(DQ ($ VSub_Number "$0") (": ") ($ VSub_Number "$1") (": invalid option"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[217])] ) (C {(set)} {(--)} {(SQ <"-?">)}) (ControlFlow token:<ControlFlow_Break break>) ] spids: [201 206 233 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [236 237 242 -1] ) ] spids: [115 119 245] ) (C {(shift)}) ] spids: [95 250] ) ) (Case to_match: {($ VSub_Number "$1")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Sentence child: (SimpleCommand words: [ {(echo)} {(DQ ("Usage: ") ($ VSub_Number "$0") (" [-d share-dir] [-r rsh-path]"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[270])] ) terminator: <Op_Semi ";"> ) (C {(exit)} {(1)}) ] spids: [258 260 278 -1] ) ] spids: [252 256 280] ) (If arms: [ (if_arm cond: [(C {(test)} {(KW_Bang "!")} {(-d)} {($ VSub_Name "$dir")})] action: [ (Sentence child: (SimpleCommand words: [ {(echo)} {(DQ ($ VSub_Number "$0") (": ") ($ VSub_Name "$dir") (": invalid directory"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[303])] ) terminator: <Op_Semi ";"> ) (C {(exit)} {(1)}) ] spids: [-1 292] ) ] spids: [-1 311] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:s) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(df)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [318] ) ] ) (C {(sed)} {(-e)} {(SQ <"s/^[^(]*(//">)} {(-e)} { (SQ < "/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*:/!d" > ) } {(-e)} {(SQ <"s/:.*//">)} {(-e)} {(SQ <"/^.$/d">)} ) (C {(sort)} {(-u)}) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [315 354] ) ) } spids: [313] ) ] spids: [313] ) (Case to_match: {($ VSub_Name "$s")} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:s) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (SimpleCommand words: [{(hostname)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [371] ) ] ) (AndOr children: [ (SimpleCommand words: [{(uname)} {(-n)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [380] ) ] ) (AndOr children: [ (SimpleCommand words: [{(cat)} {(/etc/whoami)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [389] ) ] ) (SimpleCommand words: [{(echo)} {(Assign_Local local)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [398] ) ] ) ] op_id: Op_DPipe ) ] op_id: Op_DPipe ) ] op_id: Op_DPipe ) ] ) left_token: <Left_Backtick "`"> spids: [368 400] ) } spids: [367] ) ] spids: [367] ) ] spids: [-1 365 403 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(df)} {($ VSub_Name "$dir") (/.)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [415] ) ] ) (C {(sed)} {(-e)} {(SQ <"s/^[^(]*(//">)} {(-e)} { (SQ < "/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*:/!d" > ) } {(-e)} {(SQ <"s/:.*//">)} {(-e)} {(SQ <"/^.$/d">)} ) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [409 445] ) } spids: [408] ) ] spids: [408] ) (Case to_match: {($ VSub_Name "$p")} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:p) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (SimpleCommand words: [{(hostname)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [463] ) ] ) (AndOr children: [ (SimpleCommand words: [{(uname)} {(-n)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [472] ) ] ) (AndOr children: [ (SimpleCommand words: [{(cat)} {(/etc/whoami)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [481] ) ] ) (SimpleCommand words: [{(echo)} {(Assign_Local local)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [490] ) ] ) ] op_id: Op_DPipe ) ] op_id: Op_DPipe ) ] op_id: Op_DPipe ) ] ) left_token: <Left_Backtick "`"> spids: [460 492] ) } spids: [459] ) ] spids: [459] ) ] spids: [-1 457 494 -1] ) ] spids: [448 452 497] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {($ VSub_Name "$s")} spids: [500] ) ] spids: [500] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:s) op: Equal rhs: {($ VSub_Name "$p")} spids: [504] ) ] spids: [504] ) (ForEach iter_name: h iter_words: [{($ VSub_Name "$t")}] do_arg_iter: False body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$s")} arms: [ (case_arm pat_list: [{(Lit_Other "*") ($ VSub_Name "$h") (Lit_Other "*")}] spids: [526 529 531 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:s) op: Equal rhs: {(DQ ($ VSub_Name "$s") ("\n") ($ VSub_Name "$h"))} spids: [537] ) ] spids: [537] ) ] spids: [534 535 544 -1] ) ] spids: [519 523 547] ) ] spids: [517 550] ) spids: [513 -1] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:t) op: Equal rhs: {($ VSub_Name "$s")} spids: [553] ) ] spids: [553] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:s) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (Subshell child: (CommandList children: [ (Sentence child: (C {(echo)} {(DQ ($ VSub_Name "$t"))}) terminator: <Op_Semi ";"> ) (ForEach iter_name: h iter_words: [{($ VSub_Name "$t")}] do_arg_iter: False body: (DoGroup children: [ (Pipeline children: [ (C {($ VSub_Name "$rsh")} {($ VSub_Name "$h")} {(df)} {(SQ <"2>/dev/null">)} ) (C {(sed)} {(-e)} {(SQ <"s/^[^(]*(//">)} {(-e)} { (SQ < "/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*:/!d" > ) } {(-e)} {(SQ <"s/:.*//">)} ) ] negated: False ) ] spids: [576 611] ) spids: [572 -1] ) ] ) spids: [559 612] ) (C {(sort)}) (C {(uniq)} {(-c)}) (C {(sort)} {(-bnr)}) (C {(sed)} {(-e)} {(SQ <"s/^[ \t]*[0-9]*[ \t]*//">)}) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [558 639] ) } spids: [557] ) ] spids: [557] ) ] spids: [405 406 642 -1] ) ] spids: [357 361 644] ) (C {(echo)} {(SQ <"#">)}) (C {(echo)} {(SQ <"# local file servers">)}) (C {(echo)} {(SQ <"#">)}) (C {(echo)} {(DQ ($ VSub_Name "$s"))}) ] )