-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 15/06/12 09:27 AM, Peter Stuge wrote: > Mike Frysinger wrote: >>> + # lets see if the username already exists + if [[ >>> ! -n $(egetent passwd "${euser}") ]] ; then >> >> "! -n" -> "-z" > > Does the $() argument ever need to be double quoted, or do all > versions of bash actually have the string argument optional even > though that's not what the man page reads? > > > //Peter
Ever? Yes, but only if what is being returned can contain spaces (and this matters in the way that it's used). In the case of 'egetent passwd', afaict no as it doesn't return anything with whitespace in it. Examples -- this works: $ bubba="test thing" ; if [ -n "$(echo $bubba)" ]; then echo OK; fi OK Example -- this fails: $ bubba="test thing" ; if [ -n $(echo $bubba) ]; then echo OK; fi bash: [: test: binary operator expected -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (GNU/Linux) iF4EAREIAAYFAk/bOioACgkQ2ugaI38ACPAUegD+JPzG4oX25QcqXYSfp/c2IE5o aydKUHZonedILskm5UoA/2bnn2PMFh5lm1rXh7H4/2d9MQaghAUlCmMv0/XORQtW =7fD+ -----END PGP SIGNATURE-----