Bug with tcsh? : if evaluating true instead of false

Garrett Cooper youshi10 at u.washington.edu
Wed Oct 25 08:45:47 UTC 2006


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

Garrett Cooper wrote:
> 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

Duh... tcsh syntax != C/C++ or Java syntax. Silly me... lol.
- -Garrett
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFPyQr6CkrZkzMC68RApumAJ9hl365xnqYknflDGr2Cc7O/UClnwCeN7Ih
KsVQzm0ySuW3bSGe7cCgltQ=
=MZO5
-----END PGP SIGNATURE-----


More information about the freebsd-questions mailing list