(command.CommandList children: [ (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLOCK_SIZE) op: assign_op.Equal rhs: { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:"\\'" span_id:55) ) (1) } spids: [54] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:57) ) (C {(export)} {(BLOCK_SIZE)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TIME_STYLE) op: assign_op.Equal rhs: { (SQ (Token id:Id.Lit_Chars val:'+%b %e %Y\n' span_id:81) (Token id:Id.Lit_Chars val:'%b %e %H:%M' span_id:82) ) } spids: [79] ) ] ) (C {(export)} {(TIME_STYLE)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$LANG'))}) (command.Simple words: [{(grep)} {(-i)} {(DQ ('utf-*8') (Id.Lit_Other '$'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:112) fd: -1 arg_word: {(/dev/null)} ) ] ) ] negated: F ) terminator: (Token id:Id.Op_Semi val:';' span_id:114) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SYM_ARROW) op: assign_op.Equal rhs: {(DQ ('\xe2\x96\xaa\xe2\x96\xb6'))} spids: [119] ) ] ) ] spids: [93 116] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SYM_ARROW) op: assign_op.Equal rhs: {(DQ ('->'))} spids: [127] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ESC) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:136) command_list: (command.CommandList children: [(C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'\\033' span_id:144))})] ) ) } spids: [135] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (command.Simple words: [{(tput)} {(setaf)} {(1)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:162) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:165) fd: 2 arg_word: {(1)} ) ] ) ] negated: T ) (command.Pipeline children: [ (command.Simple words: [{(tput)} {(AF)} {(1)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:178) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:181) fd: 2 arg_word: {(1)} ) ] ) ] negated: T ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:183) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:color_when) op: assign_op.Equal rhs: (word.Empty) spids: [188] ) ] ) ] spids: [152 185] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(test)} {(-t)} {(1)}) (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_Star '$*'))}) (command.Simple words: [ {(grep)} {(-E)} {(--)} {(DQ ('--color( |=always|') (Id.Lit_Other '$') (')'))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:223) fd: -1 arg_word: {(/dev/null)} ) ] ) ] negated: F ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:225) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:color_when) op: assign_op.Equal rhs: {(always)} spids: [238] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(tput)} {(bold)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:248) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:251) fd: 2 arg_word: {(1)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:253) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLD) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:262) command_list: (command.CommandList children:[(C {(tput)} {(bold)})]) ) } spids: [261] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RST) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:272) command_list: (command.CommandList children:[(C {(tput)} {(sgr0)})]) ) } spids: [271] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HLI) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:282) command_list: (command.CommandList children:[(C {(tput)} {(smso)})]) ) } spids: [281] ) ] ) ] spids: [242 255] ) (if_arm cond: [ (command.Sentence child: (command.Simple words: [{(tput)} {(md)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:297) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:300) fd: 2 arg_word: {(1)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:302) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BLD) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:311) command_list: (command.CommandList children:[(C {(tput)} {(md)})]) ) } spids: [310] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RST) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:321) command_list: (command.CommandList children:[(C {(tput)} {(me)})]) ) } spids: [320] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HLI) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:331) command_list: (command.CommandList children:[(C {(tput)} {(so)})]) ) } spids: [330] ) ] ) ] spids: [291 304] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LS_HLI) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:344) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$HLI'))}) (C {(sed)} { (DQ (s/) ($ Id.VSub_DollarName '$ESC') (Id.Lit_Other '\\') ('[') (Id.Lit_Other '\\') ('(.*') (Id.Lit_Other '\\') (')m/') (Id.Lit_Other '\\') (1/) ) } ) ] negated: F ) ] ) ) } spids: [343] ) ] ) ] spids: [193 227] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:color_when) op: assign_op.Equal rhs: {(auto)} spids: [382] ) ] ) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:ls) op:assign_op.Equal rhs:{(ls)} spids:[388])] ) (command.AndOr ops: [Id.Op_DPipe Id.Op_DPipe] children: [ (command.BraceGroup children: [ (command.Sentence child: (command.Simple words: [{(ls)} {(--color)} {(-d)} {(.)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:404) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:407) fd: 2 arg_word: {(1)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:409) ) ] ) (command.BraceGroup children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{(gls)} {(--color)} {(-d)} {(.)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:425) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:428) fd: 2 arg_word: {(1)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ls) op: assign_op.Equal rhs: {(gls)} spids: [433] ) ] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:435) ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NONGNU) op: assign_op.Equal rhs: {(1)} spids: [441] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$color_when'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:454) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$NONGNU'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:468) ) ] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.BraceGroup children: [ (command.Sentence child: (C {(colorls)} {(-d)} {(.)}) terminator: (Token id:Id.Op_Semi val:';' span_id:480) ) ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:484) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:487) fd: 2 arg_word: {(1)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ls) op: assign_op.Equal rhs: {(colorls)} spids: [492] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{($ Id.VSub_DollarName '$ls')} {(-G)} {(-d)} {(.)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:507) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:510) fd: 2 arg_word: {(1)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:color_opt) op: assign_op.Equal rhs: {(-G)} spids: [515] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$color_when'))} {(Id.Lit_Equals '=')} {(DQ (always))} {(Id.Lit_RBracket ']')} ) (command.BraceGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLICOLOR_FORCE) op: assign_op.Equal rhs: {(1)} spids: [540] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:542) ) (command.Sentence child: (C {(export)} {(CLICOLOR_FORCE)}) terminator: (Token id:Id.Op_Semi val:';' span_id:547) ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:color_when) op: assign_op.Equal rhs: (word.Empty) spids: [552] ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LSCOLORS) op: assign_op.Equal rhs: {(DQ (ExGxcxdxCxegedCxCxExEx))} spids: [568] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:572) ) (C {(export)} {(LSCOLORS)}) ] spids: [459 470] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:color_opt) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'--color=' span_id:584))} spids: [582] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:color_never) op: assign_op.Equal rhs: {(DQ ('--color=never'))} spids: [588] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$LS_COLORS'))} {(Id.Lit_RBracket ']')} ) (C {(eval)} { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:610) command_list: (command.CommandList children:[(C {(dircolors)})]) ) } ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$LS_COLORS'))} {(Id.Lit_RBracket ']')} ) (C {(eval)} { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:633) command_list: (command.CommandList children: [ (command.Simple words: [{(dircolors)}] more_env: [(env_pair name:TERM val:{(xterm)} spids:[636])] ) ] ) ) } ) ] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LS_COLORS) op: assign_op.Equal rhs: {(DQ (':') ($ Id.VSub_DollarName '$LS_COLORS') (':'))} spids: [697] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:703) ) (C {(export)} {(LS_COLORS)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(dircolors)}) (command.Simple words: [{(grep)} {(-F)} {(DQ (':mh='))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:733) fd: -1 arg_word: {(/dev/null)} ) ] ) ] negated: F ) terminator: (Token id:Id.Op_Semi val:';' span_id:735) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hl_no_color) op: assign_op.Equal rhs: {(DQ ('s/:hl=[^:]*:/:mh=:/; s/:mh=[^:]*:/:mh=:/'))} spids: [740] ) ] ) ] spids: [719 737] ) (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(dircolors)}) (command.Simple words: [{(grep)} {(-F)} {(DQ ('hl='))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:760) fd: -1 arg_word: {(/dev/null)} ) ] ) ] negated: F ) terminator: (Token id:Id.Op_Semi val:';' span_id:762) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hl_no_color) op: assign_op.Equal rhs: {(DQ ('s/:mh=[^:]*:/:hl=:/; s/:hl=[^:]*:/:hl=:/'))} spids: [767] ) ] ) ] spids: [746 764] ) ] ) (C {(eval)} { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:796) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(Id.Lit_VarLike 'LS_COLORS=') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:"\\'" span_id:838) ) (DQ ($ Id.VSub_DollarName '$LS_COLORS')) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:"\\'" span_id:842) ) (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\;' span_id:843)) } ) (C {(sed)} { (DQ ('\n') (' ') ($ Id.VSub_DollarName '$hl_no_color') ('\n') (' s/:su=[^:]*:/:su=:/\n') (' s/:sg=[^:]*:/:sg=:/\n') (' s/:ow=[^:]*:/:ow=:/\n') (' s/:st=[^:]*:/:st=:/\n') (' s/:tw=[^:]*:/:tw=:/\n') ('\n') (' s/:ca=[^:]*:/:ca=:/\n') ('\n') (' s/:mi=[^:]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}:/:mi=') ($ Id.VSub_DollarName '$LS_HLI') (':/\n') (' ') ) } ) ] negated: F ) (C {(echo)} {(SQ (Token id:Id.Lit_Chars val:'export LS_COLORS' span_id:879))} ) ] ) ) ) } ) ] ) ] spids: [445 456] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:total) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:895) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$ls')} {(-s)} {($ Id.VSub_DollarName '$color_never')} {(/)} ) (C {(sed)} {(SQ (Token id:Id.Lit_Chars val:'s/\\([^ ]*\\).*/\\1/;q' span_id:917))} ) ] negated: F ) ] ) ) } spids: [894] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{($ Id.VSub_DollarName '$ls')} {(--group-directories-first)} {(-d)} {(.)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:933) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:936) fd: 2 arg_word: {(1)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gdf) op: assign_op.Equal rhs: {(--group-directories)} spids: [941] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{($ Id.VSub_DollarName '$ls')} {(--no-group)} {(-d)} {(.)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:952) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:955) fd: 2 arg_word: {(1)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ng) op: assign_op.Equal rhs: {(--no-group)} spids: [960] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [ {($ Id.VSub_DollarName '$ls')} {(--quoting) (Id.Lit_Equals '=') (shell-escape)} {(-d)} {(.)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:973) fd: -1 arg_word: {(/dev/null)} ) (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:976) fd: 2 arg_word: {(1)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:quote) op: assign_op.Equal rhs: {(--quoting) (Id.Lit_Equals '=') (shell-escape)} spids: [981] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmt) op: assign_op.Equal rhs: {(lfmt)} spids: [993] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_Star '$*'))}) (command.Simple words: [{(grep)} {(-E)} {(--)} {(DQ ('-(m|i|x|s|C|-version|-help)'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:1014) fd: -1 arg_word: {(/dev/null)} ) ] ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lfmt) op: assign_op.Equal rhs: {(DQ )} spids: [1019] ) ] ) ] ) (command.Simple words: [{(exec)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'4>&' span_id:1036) fd: 4 arg_word: {(1)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ls_status) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1040) command_list: (command.CommandList children: [ (command.BraceGroup children: [ (command.Sentence child: (command.Pipeline children: [ (command.BraceGroup children: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$ls')} {(-lrtq)} {($ Id.VSub_DollarName '$color_opt') ($ Id.VSub_DollarName '$color_when') } {($ Id.VSub_DollarName '$ng')} {($ Id.VSub_DollarName '$gdf')} {($ Id.VSub_DollarName '$quote')} {(DQ ($ Id.VSub_At '$@'))} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1278) ) (command.Sentence child: (command.Simple words: [{(printf)} {($ Id.VSub_QMark '$?')}] redirects: [ (redir.Redir op: (Token id: Id.Redir_GreatAnd val: '1>&' span_id: 1284 ) fd: 1 arg_word: {(3)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:1286) ) ] ) (command.Simple words: [ {(sed)} { (DQ ('\n') (' # Remove total line(s) I never use\n') (' /') ($ Id.VSub_DollarName '$total') (' [0-9,. ]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '$') ('/d\n') ('\n') (' # prettify symlink arrows\n') (' s/ -> / ') ($ Id.VSub_DollarName '$BLD') ($ Id.VSub_DollarName '$SYM_ARROW') ($ Id.VSub_DollarName '$RST') (' /\n') ('\n') (' # Conditionally process long format output\n') (' b ') ($ Id.VSub_DollarName '$lfmt') ('\n') (' :lfmt\n') ('\n') (' # Ignore directory name headings\n') (' /^[^ ]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}:') (Id.Lit_Other '$') ('/b\n') ('\n') (' # temporarily shrink any prepended reset codes\n') (" # from older ls' to a single char\n") (' s/^') ($ Id.VSub_DollarName '$ESC') (Id.Lit_Other '\\') ('[0*m/0/\n') ('\n') (' # highlight ug+s indicators\n') (' s/^') (Id.Lit_Other '\\') ('(0') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}.') (Id.Lit_Other '\\') ('{3') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')') (Id.Lit_Other '\\') ('([sS]') (Id.Lit_Other '\\') (')/') (Id.Lit_Other '\\') (1) ($ Id.VSub_DollarName '$HLI') (Id.Lit_Other '\\') (2) ($ Id.VSub_DollarName '$RST') ('/\n') (' s/^') (Id.Lit_Other '\\') ('(0') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}.') (Id.Lit_Other '\\') ('{6') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')') (Id.Lit_Other '\\') ('([sS]') (Id.Lit_Other '\\') (')/') (Id.Lit_Other '\\') (1) ($ Id.VSub_DollarName '$HLI') (Id.Lit_Other '\\') (2) ($ Id.VSub_DollarName '$RST') ('/\n') ('\n') (' # highlight +t o+w indicators for directories\n') (' /^0') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}d/!b not_dir\n') (' s/^') (Id.Lit_Other '\\') ('(0') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}.') (Id.Lit_Other '\\') ('{9') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')') (Id.Lit_Other '\\') ('([tT]') (Id.Lit_Other '\\') (')/') (Id.Lit_Other '\\') (1) ($ Id.VSub_DollarName '$HLI') (Id.Lit_Other '\\') (2) ($ Id.VSub_DollarName '$RST') ('/\n') (' s/^') (Id.Lit_Other '\\') ('(0') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}.') (Id.Lit_Other '\\') ('{8') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')w/') (Id.Lit_Other '\\') (1) (${ Id.VSub_Name HLI) (w) ($ Id.VSub_DollarName '$RST') ('/\n') (' s/^') (Id.Lit_Other '\\') ('(0') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}.') (Id.Lit_Other '\\') ('{3') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')') (Id.Lit_Other '\\') ('([sS]') (Id.Lit_Other '\\') (')/') (Id.Lit_Other '\\') (1) ($ Id.VSub_DollarName '$HLI') (Id.Lit_Other '\\') (2) ($ Id.VSub_DollarName '$RST') ('/\n') (' s/^') (Id.Lit_Other '\\') ('(0') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}.') (Id.Lit_Other '\\') ('{6') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')') (Id.Lit_Other '\\') ('([sS]') (Id.Lit_Other '\\') (')/') (Id.Lit_Other '\\') (1) ($ Id.VSub_DollarName '$HLI') (Id.Lit_Other '\\') (2) ($ Id.VSub_DollarName '$RST') ('/\n') (' :not_dir\n') ('\n') (' # highlight multiply linked files\n') (' /^0') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}[^d]') (Id.Lit_Other '\\') ('{10,') (Id.Lit_Other '\\') ('}/!b not_hl\n') (' /^[^ ]* *1 /b not_hl\n') (' s/^') (Id.Lit_Other '\\') ('(0') (Id.Lit_Other '\\') ('{0,1') (Id.Lit_Other '\\') ('}[^ ]*') (Id.Lit_Other '\\') (')') (Id.Lit_Other '\\') ('( *') (Id.Lit_Other '\\') (')') (Id.Lit_Other '\\') ('([0-9]') (Id.Lit_Other '\\') ('{1,') (Id.Lit_Other '\\') ('}') (Id.Lit_Other '\\') (')/') (Id.Lit_Other '\\') (1) (Id.Lit_Other '\\') (2) ($ Id.VSub_DollarName '$HLI') (Id.Lit_Other '\\') (3) ($ Id.VSub_DollarName '$RST') ('/\n') (' :not_hl\n') ('\n') (' # restore any reset codes replaced above\n') (' s/^0/') (${ Id.VSub_Name ESC) ('[0m/\n') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:1542) fd: 1 arg_word: {(4)} ) ] ) ] negated: F ) terminator: (Token id:Id.Op_Semi val:';' span_id:1544) ) ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'3>&' span_id:1548) fd: 3 arg_word: {(1)} ) ] ) ] ) ) } spids: [1039] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sed_status) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [1553] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(test)} {($ Id.VSub_DollarName '$ls_status')} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(0)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1583) arg_word: {($ Id.VSub_DollarName '$ls_status')} ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1589) arg_word: {($ Id.VSub_DollarName '$sed_status')} ) ] ) ] )