(List (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub 0][LIT_CHARS " "]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('libdir', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('private_libdir', {[DQ [VarSub 2]]})]) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub libdir][LIT_CHARS /libjulia.so]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: Could not open "][VarSub libdir][LIT_CHARS /libjulia.so]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]}) ) ) (FunctionDef find_shlib [] (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub 1]]} {[LIT_OTHER "]"]}) (Pipeline (Com {[LIT_CHARS ldd]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS grep]} {[VarSub 2]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS -d] [SQ ]} {[LIT_CHARS -f3]}) (Com {[LIT_CHARS xargs]}) ) ) ) (= scope= flags=0 words=[] bindings=[('LIBSTD', {[ComSub (Com {[LIT_CHARS find_shlib]} {[DQ [VarSub libdir][LIT_CHARS /libjulia.so]]} {[DQ [LIT_CHARS "libstdc++.so"]]})]})]) (= scope= flags=0 words=[] bindings=[('LIBSTD_NAME', {[ComSub (Com {[LIT_CHARS basename]} {[VarSub LIBSTD]})]})]) (= scope= flags=0 words=[] bindings=[('LIBSTD_DIR', {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub LIBSTD]})]})]) (If (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -f]} {[DQ [VarSub private_libdir][LIT_CHARS /][VarSub LIBSTD_NAME]]} {[LIT_OTHER "]"]}) (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub LIBSTD_DIR][LIT_CHARS /][VarSub LIBSTD_NAME]]} {[LIT_OTHER "]"]}) ) (List (Com {[LIT_CHARS cp]} {[LIT_CHARS -v]} {[DQ [VarSub LIBSTD_DIR][LIT_CHARS /][VarSub LIBSTD_NAME]]} {[DQ [VarSub private_libdir]]}) (Com {[LIT_CHARS chmod]} {[LIT_CHARS 755]} {[DQ [VarSub private_libdir][LIT_CHARS /][VarSub LIBSTD_NAME]]}) ) ) )