(List (Com {[LIT_OTHER ":"]} {[LIT_CHARS generate]} {[LIT_CHARS list]} {[LIT_CHARS of]} {[LIT_CHARS file]} {[LIT_CHARS servers]}) (= scope= flags=0 words=[] bindings=[('dir', {[LIT_CHARS .]})]) (= scope= flags=0 words=[] bindings=[('rsh', {[LIT_CHARS rsh]})]) (While (Com {[LIT_OTHER ":"]}) (List (Case to_match={[VarSub #]}, pat_word_list=[[{[LIT_CHARS 0]}]] (Com {[LIT_CHARS break]}) ) (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_CHARS -] [LIT_OTHER "["] [LIT_CHARS dr] [LIT_OTHER "]"]}], [{[SQ ]}], [{[LIT_OTHER "["] [LIT_CHARS -] [LIT_OTHER "+"] [LIT_OTHER "]"] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (List (Case to_match={[VarSub #]}, pat_word_list=[[{[LIT_CHARS 1]}]] (List (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[SQ ]}) (Com {[LIT_CHARS break]}) ) ) (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_CHARS -d]}], [{[LIT_CHARS -r]}]] (= scope= flags=0 words=[] bindings=[('dir', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('rsh', {[VarSub 2]})]) ) (Com {[LIT_CHARS shift]}) ) (Com {[LIT_CHARS break]}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub 0][LIT_CHARS ": "][VarSub 1][LIT_CHARS ": invalid option"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[SQ ]}) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS shift]}) ) ) (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_OTHER "?"] [LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub 0][LIT_CHARS " [-d share-dir] [-r rsh-path]"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (If (Com {[LIT_CHARS test]} {[LIT_OTHER "!"]} {[LIT_CHARS -d]} {[VarSub dir]}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub 0][LIT_CHARS ": "][VarSub dir][LIT_CHARS ": invalid directory"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('s', {[DQ [ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS df]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) (Com {[LIT_CHARS sort]} {[LIT_CHARS -u]}) )]]})]) (Case to_match={[VarSub s]}, pat_word_list=[[{[DQ ]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('s', {[ComSub (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS hostname]}) (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS uname]} {[LIT_CHARS -n]}) (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS cat]} {[LIT_CHARS /etc/whoami]}) (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS echo]} {[LIT_CHARS local]}) ) ) )]})]) (List (= scope= flags=0 words=[] bindings=[('p', {[ComSub (Pipeline (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS df]} {[VarSub dir] [LIT_CHARS /.]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) )]})]) (Case to_match={[VarSub p]}, pat_word_list=[[{[DQ ]}]] (= scope= flags=0 words=[] bindings=[('p', {[ComSub (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS hostname]}) (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS uname]} {[LIT_CHARS -n]}) (AndOr OP_OR_IF (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS cat]} {[LIT_CHARS /etc/whoami]}) (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2)]{[LIT_CHARS echo]} {[LIT_CHARS local]}) ) ) )]})]) ) (= scope= flags=0 words=[] bindings=[('t', {[VarSub s]})]) (= scope= flags=0 words=[] bindings=[('s', {[VarSub p]})]) (For h [{[VarSub t]}]) (Case to_match={[VarSub s]}, pat_word_list=[[{[LIT_OTHER "*"] [VarSub h] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (= scope= flags=0 words=[] bindings=[('s', {[DQ [VarSub s][LIT_CHARS "\n"][VarSub h]]})]) ) ) (= scope= flags=0 words=[] bindings=[('t', {[VarSub s]})]) (= scope= flags=0 words=[] bindings=[('s', {[ComSub (Pipeline (Subshell (List (Com {[LIT_CHARS echo]} {[DQ [VarSub t]]}) (For h [{[VarSub t]}]) (Pipeline (Com {[VarSub rsh]} {[VarSub h]} {[LIT_CHARS df]} {[SQ /dev/null">]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[SQ ]}) ) ) ) ) (Com {[LIT_CHARS sort]}) (Com {[LIT_CHARS uniq]} {[LIT_CHARS -c]}) (Com {[LIT_CHARS sort]} {[LIT_CHARS -bnr]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]}) )]})]) ) ) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[SQ ]}) (Com {[LIT_CHARS echo]} {[DQ [VarSub s]]}) )