Bug with tcsh? : if evaluating true instead of false

Garrett Cooper youshi10 at u.washington.edu
Wed Oct 25 06:36:28 UTC 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ok, so I tried to make a simple script to add users so I wouldn't have
to type in groups/pw over and over again... the problem is that it's not
behaving like it should =o.

Script:
#!/bin/tcsh -x
#

if ( ( $# != 0 ) ) {

        set GROUPS="";
        set USER="";

        if( ( $# == 2 ) ) {

                set USER=$1;
                set GROUPS=$0;

                switch($0)

                        case "-v":
                                set GROUPS="-G vip";
                                breaksw

                        case "-w":
                                set GROUPS="-G vip,wheel";
                                breaksw
                        default:
                                echo "bad argument(s) specified!";
                                exit(1);

                endsw

        } else if($# == 1) {
                set USER=$0;
        } else {
                echo "bad # of args; exiting..";
        }

        `pw add user -N -d /home/$USER -s /usr/local/bin/bash $GROUPS
$USER && mkdir /home/$USER && ln -s /home/dud.bash_login
/home/$USER/.bash_login`;

} else {
        print "Usage [-r|-v|-w] username"
}

Output:
[root at hoover ~]# ./mkuser
if ( ( 0 != 0 ) ) {
set GROUPS=
set USER=
if ( ( 0 == 2 ) ) {
set USER=
set GROUPS=./mkuser
switch ( ./mkuser )
echo bad argument(s) specified!
bad argument(s) specified!
exit ( 1 )

	Basically it should drop out at the first if statement due to 0 != 0
being true and go straight to the else block, but it's falling through
to the switch statement. Any ideas?

	Also..

[root at hoover /home/gcooper]# tcsh --version
tcsh 6.14.00 (Astron) 2005-03-25 (i386-intel-FreeBSD) options
wide,nls,dl,al,kan,rh,color,filec

	Thanks!

- -Garrett
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFPwXc6CkrZkzMC68RAo4sAJ9LOcJ6xnjTo2pWF8W6nOjqXqjfmACeP9OC
WQWFzBpbKca+kkdT1APlo3k=
=G6sT
-----END PGP SIGNATURE-----


More information about the freebsd-questions mailing list