(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ARGV0) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(basename)} {(DQ ($ VSub_Number '$0'))})]) left_token: <Left_Backtick '`'> spids: [53 59] ) } spids: [52] ) ] spids: [52] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LSB_RELEASE) op: Equal rhs: {(SQ </etc/lsb-release>)} spids: [61] ) ] spids: [61] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERSIONS_SHELLS) op: Equal rhs: {(DQ ('ash /bin/bash /bin/dash /bin/ksh /bin/pdksh /bin/sh /bin/zsh'))} spids: [66] ) ] spids: [66] ) (Sentence child:(C {(true)}) terminator:<Op_Semi ';'>) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TRUE) op:Equal rhs:{($ VSub_QMark '$?')} spids:[75])] spids: [75] ) (Sentence child:(C {(false)}) terminator:<Op_Semi ';'>) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:FALSE) op:Equal rhs:{($ VSub_QMark '$?')} spids:[81])] spids: [81] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ERROR) op:Equal rhs:{(2)} spids:[84])] spids: [84] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UNAME_R) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-r)})]) left_token: <Left_Backtick '`'> spids: [89 93] ) } spids: [88] ) ] spids: [88] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UNAME_S) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-s)})]) left_token: <Left_Backtick '`'> spids: [96 100] ) } spids: [95] ) ] spids: [95] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:__versions_haveStrings) op: Equal rhs: {(${ VSub_Name ERROR)} spids: [103] ) ] spids: [103] ) (FuncDef name: versions_osName body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <unrecognized>)} spids: [116] ) ] spids: [116] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_system_) op: Equal rhs: {(${ VSub_Name UNAME_S)} spids: [122] ) ] spids: [122] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_release_) op: Equal rhs: {(${ VSub_Name UNAME_R)} spids: [128] ) ] spids: [128] ) (Case to_match: {(${ VSub_Name os_system_)} arms: [ (case_arm pat_list: [{(CYGWIN_NT-) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <Cygwin>)} spids: [147] ) ] spids: [147] ) ] spids: [143 145 152 16777215] ) (case_arm pat_list: [{(Darwin)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(/usr/bin/sw_vers)} {(-productName)})] ) left_token: <Left_Backtick '`'> spids: [160 164] ) } spids: [159] ) ] spids: [159] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(versions_osVersion)})]) left_token: <Left_Backtick '`'> spids: [168 170] ) } spids: [167] ) ] spids: [167] ) (Case to_match: {(${ VSub_Name os_version_)} arms: [ (case_arm pat_list: [ {(10.4)} {(10.4.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'Mac OS X Tiger'>)} spids: [191] ) ] spids: [191] ) ] spids: [182 189 196 16777215] ) (case_arm pat_list: [ {(10.5)} {(10.5.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'Mac OS X Leopard'>)} spids: [208] ) ] spids: [208] ) ] spids: [199 206 213 16777215] ) (case_arm pat_list: [ {(10.6)} {(10.6.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'Mac OS X Snow Leopard'>)} spids: [225] ) ] spids: [225] ) ] spids: [216 223 230 16777215] ) (case_arm pat_list: [ {(10.7)} {(10.7.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'Mac OS X Lion'>)} spids: [242] ) ] spids: [242] ) ] spids: [233 240 247 16777215] ) (case_arm pat_list: [ {(10.8)} {(10.8.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'Mac OS X Mountain Lion'>)} spids: [259] ) ] spids: [259] ) ] spids: [250 257 264 16777215] ) (case_arm pat_list: [ {(10.9)} {(10.9.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'Mac OS X Mavericks'>)} spids: [276] ) ] spids: [276] ) ] spids: [267 274 281 16777215] ) (case_arm pat_list: [ {(10.10)} {(10.10.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'Mac OS X Yosemite'>)} spids: [293] ) ] spids: [293] ) ] spids: [284 291 298 16777215] ) (case_arm pat_list: [ {(10.11)} {(10.11.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'Mac OS X El Capitan'>)} spids: [310] ) ] spids: [310] ) ] spids: [301 308 315 16777215] ) (case_arm pat_list: [ {(10.12)} {(10.12.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'macOS Sierra'>)} spids: [327] ) ] spids: [327] ) ] spids: [318 325 332 16777215] ) (case_arm pat_list: [ {(10.13)} {(10.13.) (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '*')} ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <'macOS High Sierra'>)} spids: [344] ) ] spids: [344] ) ] spids: [335 342 349 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <macOS>)} spids: [355] ) ] spids: [355] ) ] spids: [352 353 360 16777215] ) ] spids: [173 179 363] ) ] spids: [155 156 366 16777215] ) (case_arm pat_list: [{(FreeBSD)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <FreeBSD>)} spids: [372] ) ] spids: [372] ) ] spids: [369 370 377 16777215] ) (case_arm pat_list: [{(Linux)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <Linux>)} spids: [383] ) ] spids: [383] ) ] spids: [380 381 388 16777215] ) (case_arm pat_list: [{(SunOS)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(grep)} {(SQ <OpenSolaris>)} {(/etc/release)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [405] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <OpenSolaris>)} spids: [412] ) ] spids: [412] ) ] spids: [16777215 409] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name_) op: Equal rhs: {(SQ <Solaris>)} spids: [421] ) ] spids: [421] ) ] spids: [418 427] ) ] spids: [391 392 430 16777215] ) ] spids: [134 140 433] ) (C {(echo)} {(${ VSub_Name os_name_)}) (C {(unset)} {(os_name_)} {(os_system_)} {(os_release_)} {(os_version_)}) ] spids: [113] ) spids: [109 112] ) (FuncDef name: versions_osVersion body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version_) op: Equal rhs: {(SQ <unrecognized>)} spids: [464] ) ] spids: [464] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_system_) op: Equal rhs: {(${ VSub_Name UNAME_S)} spids: [470] ) ] spids: [470] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_release_) op: Equal rhs: {(${ VSub_Name UNAME_R)} spids: [476] ) ] spids: [476] ) (Case to_match: {(${ VSub_Name os_system_)} arms: [ (case_arm pat_list: [{(CYGWIN_NT-) (Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ (${ VSub_Name os_release_))} {(Lit_Other ':')} {(SQ <'\\([0-9]*\\.[0-9]\\.[0-9]*\\).*'>)} ) ] ) left_token: <Left_Backtick '`'> spids: [497 511] ) } spids: [496] ) ] spids: [496] ) ] spids: [491 493 514 16777215] ) (case_arm pat_list: [{(Darwin)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(/usr/bin/sw_vers)} {(-productVersion)})] ) left_token: <Left_Backtick '`'> spids: [522 526] ) } spids: [521] ) ] spids: [521] ) ] spids: [517 518 529 16777215] ) (case_arm pat_list: [{(FreeBSD)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {(DQ (${ VSub_Name os_release_))} {(Lit_Other ':')} {(SQ <'\\([0-9]*\\.[0-9]*\\)-.*'>)} ) ] ) left_token: <Left_Backtick '`'> spids: [537 551] ) } spids: [536] ) ] spids: [536] ) ] spids: [532 533 554 16777215] ) (case_arm pat_list: [{(Linux)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(DQ (${ VSub_Name LSB_RELEASE))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(grep)} {(-q)} {(SQ <'DISTRIB_ID=Ubuntu'>)} {(DQ (${ VSub_Name LSB_RELEASE))} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(DQ (${ VSub_Name LSB_RELEASE))}) (C {(awk)} {(-F) (Lit_Other '=')} { (SQ < '$1~/DISTRIB_DESCRIPTION/{print $2}' > ) } ) (C {(sed)} {(SQ <'s/"//g;s/ /-/g'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [604 633] ) } spids: [603] ) ] spids: [603] ) ] spids: [16777215 596] ) ] spids: [16777215 636] ) ] spids: [16777215 576] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(SQ </etc/redhat-release>)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(/etc/redhat-release)})] ) left_token: <Left_Backtick '`'> spids: [656 660] ) } spids: [655] ) ] spids: [655] ) ] spids: [639 652] ) ] spids: [16777215 663] ) ] spids: [557 558 666 16777215] ) (case_arm pat_list: [{(SunOS)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(grep)} {(SQ <OpenSolaris>)} {(/etc/release)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [683] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(SQ <OpenSolaris>)} {(/etc/release)}) (C {(awk)} {(SQ <'{print $2"("$3")"}'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [691 706] ) } spids: [690] ) ] spids: [690] ) ] spids: [16777215 687] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:major_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name os_release_))}) (C {(sed)} {(SQ <'s/[0-9]*\\.\\([0-9]*\\)/\\1/'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [713 728] ) } spids: [712] ) ] spids: [712] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:minor_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(Solaris)} {(/etc/release)}) (C {(sed)} {(SQ <'s/[^u]*\\(u[0-9]*\\).*/\\1/'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [732 745] ) } spids: [731] ) ] spids: [731] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version_) op: Equal rhs: {(DQ (${ VSub_Name major_) (${ VSub_Name minor_))} spids: [748] ) ] spids: [748] ) ] spids: [709 759] ) ] spids: [669 670 762 16777215] ) ] spids: [482 488 765] ) (C {(echo)} {(DQ (${ VSub_Name os_version_))}) (C {(unset)} {(os_name_)} {(os_release_)} {(os_version_)} {(major_)} {(minor_)}) ] spids: [461] ) spids: [457 460] ) (FuncDef name: versions_shellVersion body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:shell_) op: Equal rhs: {($ VSub_Number '$1')} spids: [800] ) ] spids: [800] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:shell_present_) op: Equal rhs: {(${ VSub_Name FALSE)} spids: [805] ) ] spids: [805] ) (Case to_match: {(DQ (${ VSub_Name shell_))} arms: [ (case_arm pat_list: [{(ash)}] action: [ (AndOr children: [ (C {(Lit_Other '[')} {(-x)} {(SQ </bin/busybox>)} {(Lit_Other ']')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:shell_present_) op: Equal rhs: {(${ VSub_Name TRUE)} spids: [838] ) ] spids: [838] ) ] op_id: Op_DAmp ) ] spids: [822 823 844 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (AndOr children: [ (C {(Lit_Other '[')} {(-x)} {(DQ (${ VSub_Name shell_))} {(Lit_Other ']')}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:shell_present_) op: Equal rhs: {(${ VSub_Name TRUE)} spids: [865] ) ] spids: [865] ) ] op_id: Op_DAmp ) ] spids: [847 848 871 16777215] ) ] spids: [811 819 874] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name shell_present_)} {(-eq)} {(${ VSub_Name FALSE)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(SQ <'not installed'>)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(${ VSub_Name FALSE)} ) ] spids: [16777215 894] ) ] spids: [16777215 911] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:version_) op:Equal rhs:{(SQ )} spids:[915])] spids: [915] ) (Case to_match: {(${ VSub_Name shell_)} arms: [ (case_arm pat_list: [{(Lit_Other '*') (/sh)}] spids: [929 931 962 16777215] ) (case_arm pat_list: [{(ash)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(versions_shell_ash)} {(DQ (${ VSub_Name shell_))})] ) left_token: <Left_Backtick '`'> spids: [969 977] ) } spids: [968] ) ] spids: [968] ) ] spids: [965 966 979 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (/bash)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(versions_shell_bash)} {(DQ (${ VSub_Name shell_))})] ) left_token: <Left_Backtick '`'> spids: [987 995] ) } spids: [986] ) ] spids: [986] ) ] spids: [982 984 997 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (/dash)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(versions_shell_dash)})]) left_token: <Left_Backtick '`'> spids: [1018 1020] ) } spids: [1017] ) ] spids: [1017] ) ] spids: [1000 1002 1023 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (/ksh)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(versions_shell_ksh)} {(DQ (${ VSub_Name shell_))})] ) left_token: <Left_Backtick '`'> spids: [1031 1039] ) } spids: [1030] ) ] spids: [1030] ) ] spids: [1026 1028 1041 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (/pdksh)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(versions_shell_pdksh)} {(DQ (${ VSub_Name shell_))})] ) left_token: <Left_Backtick '`'> spids: [1049 1057] ) } spids: [1048] ) ] spids: [1048] ) ] spids: [1044 1046 1059 16777215] ) (case_arm pat_list: [{(Lit_Other '*') (/zsh)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(versions_shell_zsh)} {(DQ (${ VSub_Name shell_))})] ) left_token: <Left_Backtick '`'> spids: [1067 1075] ) } spids: [1066] ) ] spids: [1066] ) ] spids: [1062 1064 1077 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version_) op: Equal rhs: {(SQ <invalid>)} spids: [1083] ) ] spids: [1083] ) ] spids: [1080 1081 16777215 1089] ) ] spids: [920 926 1089] ) (C {(echo)} { (DQ (BracedVarSub token: <VSub_Name version_> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(unknown)}) spids: [1096 1100] ) ) } ) (C {(unset)} {(shell_)} {(version_)}) ] spids: [797] ) spids: [793 796] ) (FuncDef name: versions_shell_ash body: (BraceGroup children: [ (Pipeline children: [ (C {(busybox)} {(--help)}) (C {(head)} {(-1)}) (C {(sed)} {(SQ <'s/BusyBox v\\([0-9.]*\\) .*/\\1/'>)}) ] negated: False ) ] spids: [1120] ) spids: [1116 1119] ) (FuncDef name: versions_shell_bash body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [{($ VSub_Number '$1')} {(--version)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1153])] ) (C {(grep)} {(SQ <'GNU bash'>)}) (C {(sed)} {(SQ <'s/.*version \\([^ ]*\\).*/\\1/'>)}) ] negated: False ) ] spids: [1146] ) spids: [1142 1145] ) (FuncDef name: versions_shell_dash body: (BraceGroup children: [ (SimpleCommand words: [{(eval)} {(dpkg)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [1184] ) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1187]) ] ) (AndOr children: [ (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(127)} {(Lit_Other ']')}) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DAmp ) (Pipeline children: [ (C {(dpkg)} {(-l)}) (C {(grep)} {(SQ <' dash '>)}) (C {(awk)} {(SQ <'{print $3}'>)}) ] negated: False ) ] spids: [1177] ) spids: [1173 1176] ) (FuncDef name: versions_shell_ksh body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions_shell_) op: Equal rhs: {($ VSub_Number '$1')} spids: [1238] ) ] spids: [1238] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions_version_) op: Equal rhs: {(SQ )} spids: [1242] ) ] spids: [1242] ) (If arms: [ (if_arm cond: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(${ VSub_Name versions_shell_)} {(--version)} {(Lit_Other ':')} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1264] ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [1255 1266] ) } spids: [1254] ) ] spids: [1254] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name versions_version_))}) (C {(sed)} { (SQ < 's/.*\\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\\).*/\\1/' > ) } ) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [1273 1290] ) } spids: [1272] ) ] spids: [1272] ) ] spids: [16777215 1269] ) ] spids: [16777215 1293] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name versions_version_))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(_versions_have_strings)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(strings)} {(DQ (${ VSub_Name versions_shell_))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1327] ) ] ) (C {(grep)} {(Version)}) (C {(sed)} { (SQ < 's/^.*Version \\(.*\\)$/\\1/;s/ s+ \\$$//;s/ /-/g' > ) } ) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [1318 1345] ) } spids: [1317] ) ] spids: [1317] ) ] spids: [16777215 1311] ) ] spids: [16777215 1348] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name versions_version_))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(versions_shell_pdksh)} {(DQ (${ VSub_Name versions_shell_))}) ] ) left_token: <Left_Backtick '`'> spids: [1370 1378] ) } spids: [1369] ) ] spids: [1369] ) ] spids: [16777215 1366] ) ] spids: [16777215 1381] ) (C {(echo)} {(DQ (${ VSub_Name versions_version_))}) (C {(unset)} {(versions_shell_)} {(versions_version_)}) ] spids: [1235] ) spids: [1231 1234] ) (FuncDef name: versions_shell_pdksh body: (BraceGroup children: [ (C {(_versions_have_strings)}) (Pipeline children: [ (SimpleCommand words: [{(strings)} {(DQ ($ VSub_Number '$1'))}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1419])] ) (C {(grep)} {(SQ <'PD KSH'>)}) (C {(sed)} {(-e)} {(SQ <'s/.*PD KSH \\(.*\\)/\\1/;s/ /-/g'>)}) ] negated: False ) ] spids: [1407] ) spids: [1403 1406] ) (FuncDef name: versions_shell_zsh body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions_shell_) op: Equal rhs: {($ VSub_Number '$1')} spids: [1452] ) ] spids: [1452] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(SQ <'echo ${ZSH_VERSION}'>)}) (C {(${ VSub_Name versions_shell_)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [1466 1477] ) } spids: [1465] ) ] spids: [1465] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name versions_version_))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:versions_version_) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{(${ VSub_Name versions_shell_)} {(--version)}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1507] ) ] ) (C {(awk)} {(SQ <'{print $2}'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [1500 1516] ) } spids: [1499] ) ] spids: [1499] ) ] spids: [16777215 1496] ) ] spids: [16777215 1519] ) (C {(echo)} {(DQ (${ VSub_Name versions_version_))}) (C {(unset)} {(versions_shell_)} {(versions_version_)}) ] spids: [1449] ) spids: [1445 1448] ) (FuncDef name: _versions_have_strings body: (BraceGroup children: [ (AndOr children: [ (C {(Lit_Other '[')} {(${ VSub_Name __versions_haveStrings)} {(-ne)} {(${ VSub_Name ERROR)} {(Lit_Other ']')} ) (ControlFlow token:<ControlFlow_Return return>) ] op_id: Op_DAmp ) (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(eval)} {(strings)} {(/dev/null)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [1578] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1581] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:__versions_haveStrings) op: Equal rhs: {(${ VSub_Name TRUE)} spids: [1588] ) ] spids: [1588] ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [16777215 1585] ) ] spids: [16777215 1597] ) (SimpleCommand words: [{(echo)} {(SQ <'WARN: strings not installed. try installing binutils?'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[1607])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:__versions_haveStrings) op: Equal rhs: {(${ VSub_Name FALSE)} spids: [1611] ) ] spids: [1611] ) ] spids: [1548] ) spids: [1544 1547] ) (FuncDef name: versions_main body: (BraceGroup children: [ (C {(set)} {(-u)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(versions_osName)})]) left_token: <Left_Backtick '`'> spids: [1637 1639] ) } spids: [1636] ) ] spids: [1636] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:os_version) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(versions_osVersion)})]) left_token: <Left_Backtick '`'> spids: [1643 1645] ) } spids: [1642] ) ] spids: [1642] ) (C {(echo)} {(DQ ('os: ') (${ VSub_Name os_name) (' version: ') (${ VSub_Name os_version))}) (ForEach iter_name: shell iter_words: [{(${ VSub_Name VERSIONS_SHELLS)}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:shell_version) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(versions_shellVersion)} {(DQ (${ VSub_Name shell))})] ) left_token: <Left_Backtick '`'> spids: [1678 1686] ) } spids: [1677] ) ] spids: [1677] ) (C {(echo)} { (DQ ('shell: ') (${ VSub_Name shell) (' version: ') (${ VSub_Name shell_version)) } ) ] spids: [1674 1703] ) spids: [1668 1672] ) ] spids: [1623] ) spids: [1619 1622] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name ARGV0))} {(Lit_Other '=')} {(SQ <versions>)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(versions_main)} {(DQ ($ VSub_At '$@'))})] spids: [16777215 1727] ) ] spids: [16777215 1736] ) ] )