Guido Guenther wrote: > Branden Robinson wrote: > > if [ -n "$var" ]; then I always prefer this myself too. It is portable. > Just of out curiosity, is this in any way different from the shorter: > if [ "$var" ]; then For Debian, no. But for those of us trying to program portably across systems, yes. This has the possibility of generating a syntax error if $var expanded to be something that started with a '-' and therefore looked like an option to the test operator. It is not portable to use that construct. This is heritage from the Bourne shell which also exists in the Korn shell which became the basis for the POSIX shell much later. For example on HP-UX: /bin/sh -c 'var=-f ; [ "$var" ] && echo yes' /bin/sh: test: Specify a parameter with this command. Everywhere: /bin/sh -c 'var=-f ; [ -n "$var" ] && echo yes' yes Bob
Attachment:
pgpm4K3Pxa656.pgp
Description: PGP signature