* Stefan Fritsch ([EMAIL PROTECTED]) [071116 13:03]: > is unset. (Actually, some scripts use "${LD_LIBRARY_PATH+: > $LD_LIBRARY_PATH}", which seems to work, too. But this is not > documented in the bash man page, at least I can't find it.)
The difference between ${PARAMETER:+WORD} and ${PARAMETER+WORD} is subtle, and you're right, it's not documented in the bash man page. It is part of the POSIX shell standard, though. ${PARAMETER:+WORD} substitutes WORD if PARAMETER is set and non-empty. ${PARAMETER+WORD} substitutes WORD if PARAMETER is set, empty or not. For example: [EMAIL PROTECTED]:~$ FOO= [EMAIL PROTECTED]:~$ echo ${FOO+BAR} BAR [EMAIL PROTECTED]:~$ echo ${FOO:+BAR} [EMAIL PROTECTED]:~$ unset FOO [EMAIL PROTECTED]:~$ echo ${FOO+BAR} [EMAIL PROTECTED]:~$ echo ${FOO:+BAR} [EMAIL PROTECTED]:~$ In many cases they'll be equivalent, but in the LD_LIBRARY_PATH case, I'd recommend using the colon-form. If someone has set an empty LD_LIBRARY_PATH, the correct behavior is just to add the directory you want; you don't want to stick an extra empty pathname component in there. good times, Vineet -- http://www.doorstop.net/ -- "As we enjoy great advantages from inventions of others, we should be glad of an opportunity to serve others by any invention of ours; and this we should do freely and generously." --Benjamin Franklin
signature.asc
Description: Digital signature