Crouse wrote:
In the event of a sudden termination event for the program, it would be nice to have a check there. Look into "trap" and make sure no matter what your IFS gets set back to it's original value even if someone does a CTRL+ALT+DEL. ;)
Dave Crouse
Dave, Thank you. I know trap. There is no need to reset IFS when run in a script (see my comments in the script, "It's just good form". Why? When you execute a script, it gets its own environment (a subshell so to speak) and nothing that happens in a subshell can effect the current environment. For example, do this: 03:15 alchemy:~> echo "'$IFS'" ' ' (That's ' \t\n' [space,tab,newline] by default) Now let's change IFS in a subshell [ any command executed enclosed in parenthesis on the command line gets its own subshell ], confirm the change, then check the current environment: 22:44 alchemy:~> ( IFS='$__'; echo "'$IFS'" ); echo "'$IFS'" '$__' ' ' You can see that the IFS set and echoed in the subshell remained the $__ that was assigned, but the second echo of IFS after the subshell terminated is still the familiar old ' \t\n', That's when you don't need to reset it in a script, but that is also why I do it anyway in the scripts and I write the comments in the scripts telling you it isn't necessary but to do it anyway as a matter of good form. Very few understand the subshell rule, but if you always reset IFS, you will always be OK :p Thanks for making me remember it though! -- David C. Rankin, J.D.,P.E. Rankin Law Firm, PLLC 510 Ochiltree Street Nacogdoches, Texas 75961 Telephone: (936) 715-9333 Facsimile: (936) 715-9339 www.rankinlawfirm.com