1name: IFS-space-1 2description: 3 Simple test, default IFS 4stdin: 5 showargs() { for i; do echo -n " <$i>"; done; echo; } 6 set -- A B C 7 showargs 1 $* 8 showargs 2 "$*" 9 showargs 3 $@ 10 showargs 4 "$@" 11expected-stdout: 12 <1> <A> <B> <C> 13 <2> <A B C> 14 <3> <A> <B> <C> 15 <4> <A> <B> <C> 16--- 17 18name: IFS-colon-1 19description: 20 Simple test, IFS=: 21stdin: 22 showargs() { for i; do echo -n " <$i>"; done; echo; } 23 IFS=: 24 set -- A B C 25 showargs 1 $* 26 showargs 2 "$*" 27 showargs 3 $@ 28 showargs 4 "$@" 29expected-stdout: 30 <1> <A> <B> <C> 31 <2> <A:B:C> 32 <3> <A> <B> <C> 33 <4> <A> <B> <C> 34--- 35 36name: IFS-null-1 37description: 38 Simple test, IFS="" 39stdin: 40 showargs() { for i; do echo -n " <$i>"; done; echo; } 41 IFS="" 42 set -- A B C 43 showargs 1 $* 44 showargs 2 "$*" 45 showargs 3 $@ 46 showargs 4 "$@" 47expected-stdout: 48 <1> <A> <B> <C> 49 <2> <ABC> 50 <3> <A> <B> <C> 51 <4> <A> <B> <C> 52--- 53 54name: IFS-space-colon-1 55description: 56 Simple test, IFS=<white-space>: 57stdin: 58 showargs() { for i; do echo -n " <$i>"; done; echo; } 59 IFS="$IFS:" 60 set -- 61 showargs 1 $* 62 showargs 2 "$*" 63 showargs 3 $@ 64 showargs 4 "$@" 65 showargs 5 : "$@" 66expected-stdout: 67 <1> 68 <2> <> 69 <3> 70 <4> 71 <5> <:> 72--- 73 74name: IFS-space-colon-2 75description: 76 Simple test, IFS=<white-space>: 77 At&t ksh fails this, POSIX says the test is correct. 78stdin: 79 showargs() { for i; do echo -n " <$i>"; done; echo; } 80 IFS="$IFS:" 81 set -- 82 showargs :"$@" 83expected-stdout: 84 <:> 85--- 86 87name: IFS-space-colon-3 88description: 89 Simple test, IFS=<white-space>: 90 pdksh fails both of these tests 91stdin: 92 showargs() { for i; do echo -n " <$i>"; done; echo; } 93 IFS="$IFS:" 94 x= 95 set -- 96 showargs "$x$@" 97 showargs "$@$x" 98expected-fail: yes 99expected-stdout: 100 <> 101 <> 102--- 103 104name: IFS-space-colon-4 105description: 106 Simple test, IFS=<white-space>: 107stdin: 108 showargs() { for i; do echo -n " <$i>"; done; echo; } 109 IFS="$IFS:" 110 set -- 111 showargs "$@$@" 112expected-stdout: 113 114--- 115 116name: IFS-space-colon-5 117description: 118 Simple test, IFS=<white-space>: 119 Don't know what POSIX thinks of this. at&t ksh does not do this. 120stdin: 121 showargs() { for i; do echo -n " <$i>"; done; echo; } 122 IFS="$IFS:" 123 set -- 124 showargs "${@:-}" 125expected-stdout: 126 <> 127--- 128 129name: IFS-subst-1 130description: 131 Simple test, IFS=<white-space>: 132stdin: 133 showargs() { for i; do echo -n " <$i>"; done; echo; } 134 IFS="$IFS:" 135 x=":b: :" 136 echo -n '1:'; for i in $x ; do echo -n " [$i]" ; done ; echo 137 echo -n '2:'; for i in :b:: ; do echo -n " [$i]" ; done ; echo 138 showargs 3 $x 139 showargs 4 :b:: 140 x="a:b:" 141 echo -n '5:'; for i in $x ; do echo -n " [$i]" ; done ; echo 142 showargs 6 $x 143 x="a::c" 144 echo -n '7:'; for i in $x ; do echo -n " [$i]" ; done ; echo 145 showargs 8 $x 146 echo -n '9:'; for i in ${FOO-`echo -n h:i`th:ere} ; do echo -n " [$i]" ; done ; echo 147 showargs 10 ${FOO-`echo -n h:i`th:ere} 148 showargs 11 "${FOO-`echo -n h:i`th:ere}" 149 x=" A : B::D" 150 echo -n '12:'; for i in $x ; do echo -n " [$i]" ; done ; echo 151 showargs 13 $x 152expected-stdout: 153 1: [] [b] [] 154 2: [:b::] 155 <3> <> <b> <> 156 <4> <:b::> 157 5: [a] [b] 158 <6> <a> <b> 159 7: [a] [] [c] 160 <8> <a> <> <c> 161 9: [h] [ith] [ere] 162 <10> <h> <ith> <ere> 163 <11> <h:ith:ere> 164 12: [A] [B] [] [D] 165 <13> <A> <B> <> <D> 166--- 167 168