Echo "Blank lines below indicate bugs. " ; Echo "Look for inaccurate statements as well " ; Echo ---------- begin test ---------- ; VAR = 1 2 3 4 ; Echo $(VAR[2-2]) is the substring 2 ; Echo $(VAR[2]) is the same as above ; Echo $(VAR[2-3]) is the substring 2 3 ; Echo $(VAR[2-1]) there are no numbers to the left of this text ; Echo $(VAR:J=.) is the join of $(VAR) with . ; Echo $(VAR[2-]:J=.) is join of $(VAR[2-]) with . ; Echo $(VAR[2-3]:J=.) is join of $(VAR[2-3]) with . ; # works? Echo $(VAR[2-4]:J=.) is join of $(VAR[2-4]) with . ; VAR = a b c d ; Echo "Upshifts:" ; Echo $(VAR) becomes $(VAR:U) ; Echo $(VAR[2-3]) becomes $(VAR[2-3]:U) ; Echo $(VAR[2-]) becomes $(VAR[2-3]:U) ; Echo $(VAR[2-4]) becomes $(VAR[2-4]:U) ; Echo "Upshifts with joins:" ; Echo $(VAR[2-3]) becomes $(VAR[2-3]:UJ=".") ; Echo $(VAR[2-]) becomes $(VAR[2-]:UJ=".") ; Echo $(VAR[2-4]) becomes $(VAR[2-4]:UJ=".") ; Echo "X by Y: expect 4, 9 and 9 elements" ; Echo $(VAR[2-3])$(VAR[2-3]:U) ; Echo $(VAR[2-])$(VAR[2-]:U) ; Echo $(VAR[2-4])$(VAR[2-4]:U) ; Echo "Other text before and after expansion: " ; Echo pre $(VAR[1-3]) foo ; Echo pre $(VAR[1-3]:J=.) foo ; Echo "Expanding joins: blank lines are bad!" ; FOO = "carbacidometer" ; Echo $(VAR[2-]:J=$(FOO)) ; Echo $(VAR[2-4]:J=$(FOO)) ; Echo $(VAR[2-3]:J=$(FOO)) ; Echo "Indirection:" ; FOO = foo ; VAR = a b ; BAR = F O ; Echo $($(BAR:J=O)) should be $(FOO) ; BAR = FOO VAR ; Echo $($(BAR):J=.) should be $(FOO:J=.).$(VAR:J=.) ; Echo ---------- end test --------------- ;