(List (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub #]} {[LIT_CHARS -le]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) (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=[('TARGET_FILE', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -e]} {[VarSub TARGET_FILE]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('V', {[VarSub @]})]) (Com {[LIT_CHARS sh]} {[LIT_CHARS -c]} {[DQ [VarSub V]]} ) (Com {[LIT_CHARS exit]} {[VarSub ?]} ) ) ) (= scope= flags=0 words=[] bindings=[('TMP_FILE', {[ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS /tmp/XXXXXXXX]})]})]) (Com {[LIT_CHARS cp]} {[LIT_CHARS -a]} {[VarSub TARGET_FILE]} {[VarSub TMP_FILE]} ) (= scope= flags=0 words=[] bindings=[('V', {[VarSub @]})]) (Com {[LIT_CHARS sh]} {[LIT_CHARS -c]} {[DQ [VarSub V]]} ) (= scope= flags=0 words=[] bindings=[('ERROR_CODE', {[VarSub ?]})]) (If (Com {[LIT_CHARS cmp]} {[VarSub TMP_FILE]} {[VarSub TARGET_FILE]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 2), > ) (Com {[LIT_CHARS mv]} {[LIT_CHARS -f]} {[VarSub TMP_FILE]} {[VarSub TARGET_FILE]} ) (ElseTrue) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[VarSub TMP_FILE]} ) ) (Com {[LIT_CHARS exit]} {[VarSub ERROR_CODE]} ) )