(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MAXDISKUSAGE) op:Equal rhs:{(1)} spids:[14])] spids: [14] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:violators) op: Equal rhs: {(DQ (/tmp/diskhogs0.) ($ VSub_Dollar '$$'))} spids: [17] ) ] spids: [17] ) (C {(trap)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(which)} {(rm)})]) left_token: <Left_Backtick '`'> spids: [27 31] ) (' -f ') ($ VSub_Name '$violators') ) } {(0)} ) (Pipeline children: [ (ForEach iter_name: name iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cut)} {(-d) (Lit_Other ':')} {(-f1) (Lit_Comma ',') (3)} {(/etc/passwd)}) (C {(awk)} {(-F) (Lit_Other ':')} {(SQ <'$2 > 99 { print $1 }'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [45 67] ) } ] do_arg_iter: F body: (DoGroup children: [ (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$name') (' '))}) (Pipeline children: [ (C {(find)} {(/)} {(/usr)} {(/var)} {(/Users)} {(-xdev)} {(-user)} {($ VSub_Name '$name')} {(-type)} {(f)} {(-ls)} ) (C {(awk)} {(SQ <'{ sum += $7 } END { print sum / (1024*1024) }'>)}) ] negated: F ) ] spids: [69 123] ) spids: [44 16777215] ) (SimpleCommand words: [ {(awk)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('2 > ') ($ VSub_Name '$MAXDISKUSAGE') (' { print ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('0 }') ) } ] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$violators')})] ) ] negated: F ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-s)} {($ VSub_Name '$violators')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('No users exceed the disk quota of ') (${ VSub_Name MAXDISKUSAGE) (MB))}) (C {(cat)} {($ VSub_Name '$violators')}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [16777215 157] ) ] spids: [16777215 180] ) (WhileUntil keyword: <KW_While while> cond: [(Sentence child:(C {(read)} {(account)} {(usage)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Pipeline children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 237 stdin_parts: [ ('Your disk usage is ') (${ VSub_Name usage) ('MB, but you have been allocated only\n') (${ VSub_Name MAXDISKUSAGE) ('MB. This means that you need to either delete some of \n') ( "your files, compress your files (see 'gzip' or 'bzip2' for powerful and\n" ) ('easy-to-use compression programs), or talk with us about increasing\n') ('your disk allocation.\n') ('\n') ('Thanks for your cooperation in this matter.\n') ('\n') ('Dave Taylor @ x554\n') ] ) ] ) (C {(fmt)}) (C {(mail)} {(-s)} {(DQ ('Warning: ') ($ VSub_Name '$account') (' Exceeds Quota'))} {($ VSub_Name '$account')} ) ] negated: F ) (C {(echo)} { (DQ ('Account ') ($ VSub_Name '$account') (' has ') ($ VSub_Name '$usage') (' MB of disk space. User notified.') ) } ) ] spids: [193 250] ) redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Name '$violators')})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )