(command.CommandList children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'usage: gen_initramfs_list.sh dirname'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [4 18] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LEN) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [(C {<echo>} {($ Id.VSub_Number '$1')}) (C {<wc>} {<-c>})] negated: F ) ) } spids: [38] ) ] ) (command.Pipeline children: [ (C {<find>} {(DQ ($ Id.VSub_Number '$1'))}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<read>} {<i>})]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PERM) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<stat>} {<-c>} {<Id.Lit_Other '%'> <a>} {(DQ ($ Id.VSub_DollarName '$i'))} ) ) } spids: [69] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NAME) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$i')}) (C {<cut>} {<-b>} {(${ Id.VSub_Name LEN) <->}) ] negated: F ) ) ) } spids: [84] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$NAME'))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-L>} {(DQ ($ Id.VSub_DollarName '$i'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} { (DQ <'slink '> ($ Id.VSub_DollarName '$NAME') <' '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<readlink>} {(DQ ($ Id.VSub_DollarName '$i'))}) ) <' '> ($ Id.VSub_DollarName '$PERM') <' 0 0'> ) } ) ] spids: [122 135] ) (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$i'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} { (DQ <'file '> ($ Id.VSub_DollarName '$NAME') <' '> ($ Id.VSub_DollarName '$i') <' '> ($ Id.VSub_DollarName '$PERM') <' 0 0'> ) } ) ] spids: [157 170] ) (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_DollarName '$i'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} { (DQ <'dir '> ($ Id.VSub_DollarName '$NAME') <' '> ($ Id.VSub_DollarName '$PERM') <' 0 0'> ) } ) ] spids: [186 199] ) ] ) ] ) ) ] negated: F ) ] )