(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'tempfile='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tempfile='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tempfile='> name:tempfile) op: assign_op.Equal rhs: {(DQ <'/tmp/geoloc.'> ($ Id.VSub_Dollar '$'))} ) ] redirects: [] ) (command.Simple blame_tok: <trap> more_env: [] words: [ {<trap>} { (DQ (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {<rm>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) <' -f '> ($ Id.VSub_DollarName tempfile) ) } {<0>} {<1>} {<15>} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Usage: '> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {($ Id.VSub_Number 0)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <' image'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [38 52] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [filename] iterable: (for_iter__Args) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Pipeline children: [ (command.Simple blame_tok: <identify> more_env: [] words: [ {<identify>} {<-format>} {(DQ <'%[EXIF:*]'>)} {(DQ ($ Id.VSub_DollarName filename))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<GPSL>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tempfile)} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'latdeg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'latdeg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'latdeg='> name:latdeg) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-1>} {($ Id.VSub_DollarName tempfile)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Comma ','>} {<-f1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Equals '='>} {<-f2>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'latdeg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'latdeg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'latdeg='> name:latdeg) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <scriptbc> more_env: [] words: [{<scriptbc>} {<-p>} {<0>} {($ Id.VSub_DollarName latdeg)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'latmin='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'latmin='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'latmin='> name:latmin) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-1>} {($ Id.VSub_DollarName tempfile)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Comma ','>} {<-f2>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'latmin='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'latmin='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'latmin='> name:latmin) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <scriptbc> more_env: [] words: [{<scriptbc>} {<-p>} {<0>} {($ Id.VSub_DollarName latmin)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'latsec='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'latsec='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'latsec='> name:latsec) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-1>} {($ Id.VSub_DollarName tempfile)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Comma ','>} {<-f3>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'latsec='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'latsec='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'latsec='> name:latsec) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <scriptbc> more_env: [] words: [{<scriptbc>} {($ Id.VSub_DollarName latsec)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'latorientation='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'latorientation='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'latorientation='> name:latorientation) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-n>} {(SQ <2p>)} {($ Id.VSub_DollarName tempfile)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Equals '='>} {<-f2>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'longdeg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'longdeg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'longdeg='> name:longdeg) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-n>} {(SQ <3p>)} {($ Id.VSub_DollarName tempfile)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Comma ','>} {<-f1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Equals '='>} {<-f2>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'longdeg='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'longdeg='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'longdeg='> name:longdeg) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <scriptbc> more_env: [] words: [{<scriptbc>} {<-p>} {<0>} {($ Id.VSub_DollarName longdeg)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'longmin='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'longmin='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'longmin='> name:longmin) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-n>} {(SQ <3p>)} {($ Id.VSub_DollarName tempfile)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Comma ','>} {<-f2>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'longmin='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'longmin='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'longmin='> name:longmin) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <scriptbc> more_env: [] words: [{<scriptbc>} {<-p>} {<0>} {($ Id.VSub_DollarName longmin)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'longsec='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'longsec='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'longsec='> name:longsec) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-n>} {(SQ <3p>)} {($ Id.VSub_DollarName tempfile)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Comma ','>} {<-f3>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'longsec='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'longsec='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'longsec='> name:longsec) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <scriptbc> more_env: [] words: [{<scriptbc>} {($ Id.VSub_DollarName longsec)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'longorientation='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'longorientation='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'longorientation='> name: longorientation ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-n>} {(SQ <4p>)} {($ Id.VSub_DollarName tempfile)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cut> more_env: [] words: [{<cut>} {<-d> <Id.Lit_Equals '='>} {<-f2>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <'/bin/echo'> more_env: [] words: [ {<'/bin/echo'>} {<-n>} { (DQ <'Coords: '> ($ Id.VSub_DollarName latdeg) <' '> (${ Id.VSub_Name latmin) <'\' '> (${ Id.VSub_Name latsec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> ($ Id.VSub_DollarName latorientation) <', '> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ ($ Id.VSub_DollarName longdeg) <' '> (${ Id.VSub_Name longmin) <'\' '> (${ Id.VSub_Name longsec) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> ($ Id.VSub_DollarName longorientation) ) } ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )